0

我有以下问题,在此先感谢您对此问题的任何帮助。

我在Apps > [NAME-OF-THE-APP] > Permissionshttps://developers.facebook.com/apps/[APP-ID]/permissions)中配置了我的应用程序以请求“publish_actions”,当用户第一次使用该应用程序时,如下图所示。 .

http://f.cl.ly/items/0O0V0s3g3Y3z0t1Z2P2p/Scr​​een%20Shot%202012-10-26%20at%208.36.32%20AM.png

问题是 Auth Dialog 没有反映这个配置,因此没有请求“publish_actions”的权限......

http://f.cl.ly/items/12082g323w182E0U1Y05/Screen%20Shot%202012-10-26%20at%208.36.49%20AM.png

我尝试了不同的“用户和朋友权限”和“扩展权限”,但身份验证对话框始终保持不变。

我使用 JavaScript SDK,这是代码,我正在尝试在 Canvas 中访问我的应用程序。

<script>
window.fbAsyncInit = function() {
    FB.init({appId:'398977410174164',status:true,cookie:true,xfbml:true});

    function testAPI() {
        console.log('Welcome!  Fetching your information.... ');
        FB.api('/me', function(response) {
            console.log('UserID, ' + FB.getAuthResponse()['userID'] + '.');
            console.log('Access token, ' + FB.getAuthResponse()['accessToken'] + '.');
        });
    }

    function login() {
        FB.login(function(response) {
            if (response.authResponse) {
                testAPI();
            } else {
                // cancelled
            }
        });
    }

    FB.getLoginStatus(function(response) {
        if(response.status === 'connected'){
            var signedRequest = response.authResponse.signedRequest;
        }else if(response.status === 'not_authorized'){
            login();
        }else{
            login();
        }
    });
};

(function(d){
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    ref.parentNode.insertBefore(js, ref);
}(document));
</script>

再次感谢您提供的任何帮助。

4

2 回答 2

0

在 login() 函数中使用此代码:

function login() {
    FB.login(function(response) {
        if (response.authResponse) {
            testAPI();
        } else {
            // cancelled
        }
    }, {scope:'publish_actions'});
}
于 2012-10-26T13:16:12.980 回答
0

[第x次:]

这些设置适用于从应用中心登录。(而且它们还曾经通过 Authenticaed Referrals 影响登录,现在已弃用。)

但是,无论何时您自己触发登录(就像您对 FB.login 调用所做的那样) - 您必须在此处指定权限,然后通过scope参数指定权限。

于 2012-10-26T12:54:45.267 回答