57

私が理解しているように、最近Facebookはoffline_access許可を削除することを決定し、最大60日間続く長期アクセストークンと呼ばれる概念を導入しました。Facebook JavaScript SDKを使用してこのアクセストークンを取得する方法を知っている人はいますか?

4

4 に答える 4

108

これを60日に延長する方法があります。ここで説明されています:https : //developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/Scenario 4: Client-side OAuth and Extending Access_Token Expiration Time through New Endpoint

編集:アクセストークンを拡張するには、短期間のアクセストークンを使用して次のリクエストを行う必要があります。

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 
于 2012-05-06T06:31:35.567 に答える
12

Facebookのバグにより、一部のユーザーは、Facebookが長期間有効なトークンを発行する前にアプリの認証を解除する必要があります。

于 2012-07-27T21:12:03.690 に答える
0

'axios'を使用してFacebookGraphAPI呼び出しを行いました。client_idとclient_secretは、アプリダッシュボードから見つけることができます。

getLongLiveToken = () => {
    window.FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            let userAccessToken = response.authResponse.accessToken;
            axios.get(`https://graph.facebook.com/oauth/access_token?client_id=${clientId}&client_secret=${clientSecret}&grant_type=fb_exchange_token&fb_exchange_token=${userAccessToken}`)
            .then((response) => {
                console.log("Long Live Access Token");
                console.log(response.data.access_token);
             });
           }
       });
    }
<button onClick={ () => this.getLongLiveToken() } >Long Live Token</button>
于 2018-03-30T05:50:43.557 に答える
-2

次の詳細を使用してJavaScriptに関数を追加します。それがあなたのために機能することを願っています。

function getLongLiveToken(data){

        FB.api('oauth/access_token', {
            client_id: data.client_id, // FB_APP_ID
            client_secret: data.secret, // FB_APP_SECRET
            grant_type: 'fb_exchange_token',
            fb_exchange_token: data.access_token // USER_TOKEN
        }, function (res) {
            if(!res || res.error) {
                console.log(!res ? 'error occurred' : res.error);
            }else{
                var accessToken = res.access_token;
                if(typeof accessToken != 'undefined'){
                }
            }
        });
    }
于 2017-03-27T07:32:33.390 に答える