2012-05-06 14 views

答えて

102

これを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 
+1

現在のアクセストークンを交換する必要がありますか?新しいアクセストークンを取得するには、現在のアクセストークンを60日後に毎回変更する必要がありますか?今私はscopパラメータとしてオフラインアクセスを渡すときにそれを考慮していないと思われ、単に私のアクセストークンは数時間以内に期限が切れています。 FacebookのJavaScript sdkを使用してライブアクセストークンを取得する方法を説明できますか?私が一緒に送る必要がある設定や特別なパラメータはありますか? –

+0

オフラインアクセスは推奨されていませんので、使用しないでください。私は自分の答えを編集しました。 –

+0

ありがとうございましたYan、この方法で、私たちの存在のユーザーaccess_tokenを新しい長いlive access_tokenに更新することができます。それは結構です。しかし、私はまだfacebook js sdkで60回の有効期限を持つ新しいaccess_tokenを取得することはできません。これらの特殊なスコープのパラメータまたは設定は、これに関連していますか? –

12

のためのFacebookのバグのため、いくつかのユーザーはFacebookが長寿命のトークンを発行する前にアプリを不正にする必要があります。

+11

が確認されました。私の頭を画面に叩いて7時間後、私のアカウントからAppを削除し、長いライブトークンが返されました。 – Costa

+4

それは冗談ではないです... – seb

+2

まだこの未解決のバグですか? – Enrique

0

次の詳細情報とともに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'){ 
       } 
      } 
     }); 
    } 
+0

クライアント側からの呼び出しを行わず、短いトークンをサーバーに送信し、バックエンドにこの種のものを使用します。これにはアプリの秘密が含まれています。 – meain

+0

あなたは教えてもらえますか?どのプログラミング言語を好みますか。 – ankur

+1

バックエンドで使用するものを使用して、私は個人的にpythonを使用します。 – meain

関連する問題