2012-07-11 82 views
0

我有一个网站,并使用登录使用Facebook。 我要做到以下几点:我可以从facebook用户加载我的webapp的私人照片吗?

用户来到我的网站 - 与Facebook登录 - 我读了他的Facebook数据和摄影允许

例如:

{ 
    "id": "1" 
    "name": "John English" 
    "first_name": "John", 
    "last_name": "English" 
    "link": "https://www.facebook.com/johnenglish" 
    "username": "johnenglish" 
    "gender": "male" 
    "locale": "en_US" 
    .... 
} 

{ 
    "id": "2" 
    "name": "John English2" 
    "first_name": "John", 
    "last_name": "English2" 
    "link": "https://www.facebook.com/johnenglish2" 
    "username": "johnenglish2" 
    "gender": "male" 
    "locale": "en_US" 
    .... 
} 

这两个用户都有私人照片。我可以使用JavaScript从我的web应用程序加载用户(id:2)的私人照片吗?你能举个例子吗?

我已经试过这样:

FB.getLoginStatus(function(response) { 
       if (response.status === 'connected') { 
        var uid = response.authResponse.userID; 
        var accessToken = response.authResponse.accessToken; 

        FB.api('/USER-ID(USER ID 2)/photos?access_token=' + accessToken, function(response) { 

      //A user access token is required to request this resource. 


        }); 



       } else if (response.status === 'not_authorized') { 

       } else { 
       } 
      }); 

错误:用户访问令牌需要请求该资源。

+0

乍一看,你有错字吗? '“link”:“https://www.facebook.com/johenglish”'应该是''link“:”https://www.facebook.com/johnenglish“'? – Sirch 2012-07-11 11:47:00

+0

这仅仅是一个例子。我想加载其他用户的私人照片。 – Jenan 2012-07-11 11:49:18

回答

1

当您获得访问令牌时,您是否请求了正确的权限?我不知道如何在JS中做到这一点,但你必须告诉Facebook,你希望你能够访问照片。由于我不使用JS,我通过URL请求访问令牌(请参阅第1点:https://developers.facebook.com/docs/authentication/devices/)。在参数“范围”中,您可以添加您想要的权限(https://developers.facebook.com/docs/authentication/permissions/)。在这里,您将“& scope = user_photos”(不带引号)添加到URL。

+0

我有范围:'email user_photos user_birthday' 我不知道如何加载来自其他用户的私人照片。我是ID:1的用户。我可以使用我的web应用程序加载来自ID为2的用户的私人照片吗? – Jenan 2012-07-11 11:57:09

+0

看到我的其他答案 – 2012-07-11 20:29:56

+0

它适合你吗? – 2012-07-14 08:26:31

-1

好的,现在我明白你的问题了。

我认为你已经找到了用户2的ID。我很抱歉,但我仍然不能告诉你如何在JS中做到这一点。虽然,它可能会有所帮助。

起初,我忘了一个许可,你也需要在范围内friends_photos

您现在致电:http://graph.facebook.com/FRIEND_ID/albums/?access_token=ACCESS_TOKEN

将其输入到您的浏览器中,以便您知道我的意思:您解析输出并找到您朋友的专辑的ID。

您可以通过以下方式访问该相册:http://graph.facebook.com/ALBUM_ID?access_token=ACCESS_TOKEN

您会在输出中找到一个名为cover_photo的条目。

致电:http://graph.facebook.com/COVER_PHOTO_ID?access_token=ACCESS_TOKEN并且您可以访问该照片。

您现在可以通过http://graph.facebook.com/COVER_PHOTO_ID/picture?access_token=ACCESS_TOKEN进行下载。

使用pagingnext中给出的URL转到以下照片。考虑到这一点,按照这些步骤更容易,请考虑here

相关问题