0

我有一个网站并使用 facebook 登录。我想做以下事情:

用户访问我的网站 - 使用 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 {
                }
            });

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

4

2 回答 2

1

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

于 2012-07-11T11:50:19.797 回答
-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下载它。

使用paging->中给出的 URLnext转到以下照片。记住一张图片,按照这些步骤进行操作要容易得多,请在此处考虑。

于 2012-07-11T12:25:43.027 回答