在javascript中使用Facebook API获取测试用户的照片

时间:2016-11-21 05:23:58

标签: javascript facebook facebook-graph-api

我正在使用Facebook API,我在Roles->TestUsers下创建了一个测试用户,其中包含publish_actios, user_photos的使用权当我使用此用户登录并尝试获取照片或Feed时,它会返回空响​​应。 /> 这是我的javascript代码。

        FB.api('me/feed', function(response) {
            console.log(response);
        });

这样的返回响应Object {data: Array[0]}我尝试使用相同的照片结果。但是,当我只尝试FB.api('me',function...时,它正在使用该用户的良好返回名称和ID,但为什么这不适用于photos and feeds。我在Facebook帐户上使用此测试用户上传了一些照片。 对不起,我是新手,对此并不了解。

更新

我调试accessToken得到这些结果。

Application ID  1017793531681977 : codeDeveloper
User ID 104922836661684
Issued  Unknown
Expires 1479805200 (in about an hour)
Valid   True
Origin  Unknown
Scopes  user_photos, user_friends, email, publish_actions, public_profile

我还在测试用户帐户中添加了三张照片。我正在使用这个javascript代码。

 FB.api('me/photos',...

它返回响应Object {data: Array[0]}为什么没有得到任何结果。这是测试用户,我没有申请任何审核权限。 因为首先我需要任何测试用户,我可以在那里测试我的应用程序并提交 评论我该怎么做。

更新

     function statusChangeCallback(response) {
        if (response.status === 'connected') {
            testAPI();
        } else if (response.status === 'not_authorized') {

        } else {

        }
    }

    function checkLoginState() {
        FB.getLoginStatus(function(response) {
            statusChangeCallback(response);
        });
    }

    window.fbAsyncInit = function() {
        FB.init({
            appId      : '101**********77',  
            cookie     : true,  // enable cookies to allow the server to access
                                // the session
            xfbml      : true,  // parse social plugins on this page
            version    : 'v2.8' // use graph api version 2.5
        });

        FB.getLoginStatus(function(response) {
            statusChangeCallback(response);
        });

    };

    (function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

    function testAPI() {
        FB.api('me/photos', function(response) {
            console.log(response);
        });
    }

在HTML正文中

  <fb:login-button scope="public_profile,email,user_photos,publish_actions" onlogin="checkLoginState();">

1 个答案:

答案 0 :(得分:0)

publish_actions用于发帖,因为您需要user_posts权限才能阅读Feed。

user_photos对于获取照片是正确的,端点为/me/photos

调试令牌并确保其包含正确的权限:https://developers.facebook.com/tools/debug/accesstoken/