0

私は次の問題を抱えています。この問題に関して助けてくれてありがとう。

次の図に示すように、ユーザーが初めてアプリケーションを使用するときに、「publish_actions」を要求するようにApps > [NAME-OF-THE-APP] > Permissionshttps://developers.facebook.com/apps/ [APP-ID] / permits)でアプリケーションを構成しました。 。

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

問題は、認証ダイアログがこの構成を反映していないため、「publish_actions」へのアクセス許可を要求しないことです...

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

「ユーザーと友達のアクセス許可」と「拡張アクセス許可」を変えてみましたが、認証ダイアログは常に同じです。

JavaScriptSDKを使用しています。コードは次のとおりです。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

[x回目:]

これらの設定は、アプリセンターからのログインにのみ適用されます。(また、Authenticaed Referralsを介したログインにも影響を及ぼしていましたが、現在は非推奨になっています。

ただし、(FB.login呼び出しで行っているように)自分でログインをトリガーする場合は常に、scopeパラメーターを使用して、そこでアクセス許可を指定する必要があります。

于 2012-10-26T12:54:45.267 に答える
0

login()関数内で次のコードを使用します。

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