4

javacript SDK を使用してアクセス トークンを取得し、そのアクセス トークンを 60 日間延長しようとしています。応答から次のような応答エラーが発生しました。Object { message="Invalid OAuth access token.", type="OAuthException", code=190}

私の期待:

  1. 有効期限が 60 日の新しいアクセス トークンを取得する
  2. コンソールからスクリーンへ。

私のコード:

window.onload = function() {

var isLogin = true;

FB.init({appId:422642254433770, cookie:true, status:true, xfbml:true });

FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
        // the user is logged in and connected to your
        // app, and response.authResponse supplies
        // the user’s ID, a valid access token, a signed
        // request, and the time the access token 
        // and signed request each expire
        var uid = response.authResponse.userID;
        var accessToken = response.authResponse.accessToken;
        var accessTokenOld = response.authResponse.accessToken;

        //Extend access token                    
        var OauthParams = {};
        OauthParams['client_id'] = '//REMOVED APP ID';
        OauthParams['client_secret'] = '//REMOVED APP SECRET';
        OauthParams['grant_type'] = 'fb_exchange_token';
        OauthParams['fb_exchange_token'] = 'accessToken';
        OauthParams['response_type'] = 'token';

        console.log("Old accessToken => " + accessToken);
        FB.api('/oauth/access_token', 'post', OauthParams, function(response) {
            console.log(response);

            if (!response || response.error) {
                console.log(response.accesstoken);
            } else {
                console.log("Lay new access token bi loi " + response.error.message);
            }
        });        
    }
});
};

私は手がかりなしにこのトラブルを3日間あらゆる場所で検索しようとします. 経験者はいますか?助けてください。

どうもありがとう

4

3 に答える 3

0

FB アプリの詳細設定で「offline_access 権限の削除」が有効になっている場合、すべてのアクセス トークンはデフォルトで 60 日になります。

最近、この同じ問題に遭遇しましたが、これで問題が解決しました。

お役に立てれば!

于 2012-08-02T01:52:53.850 に答える
-2

Jquery Valdeを使用して最大2か月の拡張アクセストークンを取得する簡単なソリューションを見つけました

URL に渡す変数:

var accessToken = 'CURRENT_ACCESS_TOKEN';
var appid       = 'APPID';
var appsecret   = 'APPSECRET';

あなたのURLは

var exchangeUrl = "https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&fb_exchange_token="+accessToken+"&client_id="+appid+"&client_secret="+appsecret;

次のように Ajax リクエストを作成します。

$.ajax({  
type: "GET",
url: exchangeUrl,  
success: function(data)
{ 
   extended = data.split('=');
   extendedAT = extended['1'].replace('&expires','');
       alert(extendedAT);

}

});
于 2014-04-01T11:53:50.200 に答える