2011-02-05 87 views
5

this url,Facebook解釋瞭如何使用Facebook Connect進行身份驗證。如何在沒有HTTP重定向的情況下獲得新的「授權碼」?

基本上,步驟如下:

  1. 重定向至Facebook爲例。因此,我會得到一個授權碼

    https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream 
    
  2. 做一個HTTP郵寄到以下地址,要求爲的access_token

    https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&client_secret=YOUR_APP_SECRET&code=THE_CODE_FROM_ABOVE 
    

Facebook將回答最後一個帶有access_token的HTTP帖子。精細。


的access_token上述接收到期。它將繼續有效的秒數與access_token一起返回。好。

問題是:過期後該怎麼辦?

來自Facebook公報網站:

除了訪問令牌(該參數的access_token),響應中包含的秒數,直到令牌過期(在到期參數)。一旦令牌到期,您將需要重新運行上述步驟以生成新代碼並訪問令牌

等待!我無法重新執行上述步驟,因爲爲了獲得新的授權碼,我必須重定向(步驟1)。我不想重定向。我想通過網絡服務獲得新的授權碼。用戶已經授權我的申請,我再也沒有機會重定向他或她。

我該怎麼辦?

PS:從邏輯上思考,access_token過期後我不需要獲得新的授權碼。一個新的access_token就足夠了。但是,正如我所展示的,Facebook說授權碼也到期了。

+0

我覺得問題應該是 「如何在沒有HTTP重定向的情況下獲得新的'訪問令牌'?」 「訪問令牌」而不是「授權碼」 – Carmela 2017-09-18 10:15:48

回答

0

由於他們刪除了offline_access,因此Facebook提供了一種延長現有短期標記到期的方法。

只是提出以下要求:

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 

而且,關於長壽的訪問令牌到期,

Currently the long-lived user access_token will be valid for 60 days while the 
short-lived user access_tokens are currently valid from 1 to 2 hours. 

欲瞭解更多信息,請參閱https://developers.facebook.com/roadmap/offline-access-removal/

相關問題