2

有効期間が短いユーザー アクセス トークンを有効期間が長いユーザー アクセス トークンに交換しようとしていますが、(all.js で) エラーが発生します。

ReferenceError: 割り当ての左側が無効です

...TZCOZCkuZBxZAzVUSokiOJbXZAHhESJvuA97qXTpVbVj3P7AZDZD&expires=512326

response.error.message: 不明なエラー

コード:

window.fbAsyncInit = function () {
           FB.init({
               appId: 'xxx', // App ID
               status: true, // check login status
               cookie: true, // enable cookies to allow the server to access the session
               xfbml: true,  // parse XFBML
               oauth: true
           });

           FB.login(function (response) {
                    if (response) {

                    var accessToken = response.authResponse.accessToken;

                    FB.getLoginStatus(function(response) {
                        if (response.status === 'connected') {

                            var accessToken = response.authResponse.accessToken;

                            var OauthParams = {};
                            OauthParams['client_id'] = 'xxx';
                            OauthParams['client_secret'] = 'xxx';
                            OauthParams['grant_type'] = 'fb_exchange_token';
                            OauthParams['fb_exchange_token'] = accessToken;
                            OauthParams['response_type'] = 'token';
                            console.log(accessToken);

                            FB.api('/oauth/access_token', 'post', OauthParams, function(response) {
                                if (!response || response.error) {
                                    console.log(response.error.message);
                                } 
                                else {
                                    console.log(response.accesstoken);
                                }
                            });        
                        }
                    });
                    };

           }, { scope: 'manage_pages' });

       };


}

(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));

誰にもアイデアがありますか?

ありがとう、/M

4

2 に答える 2

1

ドキュメントのシナリオ4に従って、GETリクエストを送信する必要があります

https://graph.facebook.com/oauth/access_token?
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN

おそらく問題はPOSTリクエストを使用していることですが、よくわかりません

PS クライアント側で APP_SECRET を使用することはお勧めしません

于 2012-08-28T09:17:17.203 に答える
0

FB Javascript SDK クライアントからテストを実行すると、同様の問題が発生しました。私の側の問題は、SDK が で access_token を処理していたことfb_exchange_tokenです。このアクセス トークン文字列の最後の 3 文字だけを変更すると、エラーが解消されました。もちろん、これは問題の解決には役立ちませんが、少なくともこれが私の場合の問題でした。

いずれにせよ、これらの呼び出しはサーバーから行う必要があるため、これ以上トラブルシューティングを進めるつもりはありません。

于 2014-03-24T23:19:41.833 に答える