前言
本篇將分享如何利用 Facebook 的圖形 API 測試工具,以及 PHP 來取得長期權杖 (long lived token),以及永不過期權杖 (never expired token)
目前正在做一個 Facebook 的直播拍賣優化系統的後端,發現前端的短期 (short lived token) 權杖有效時間只有不到兩個小時,相較於 Android 的三個月,以及 iOS 的兩個月,實在是有夠短。
雖然說 code 寫好之後其實也無所謂,但是就想來研究一下如何拿到長期的權杖 (long lived token)
Facebook 的圖形 API 測試工具
長期權杖 (long lived token)
首先,讓我們先用 Facebook 的圖形 API 來拿長期權杖 (long lived token)
測試帳號
取得測試測試帳號權杖
圖形 API 測試工具
輸入剛剛獲得的權杖
按下’提交’
按下權杖左邊的驚嘆號,並選擇,以存取權杖工具開啟
點擊左下方的,延伸存取權杖
得到兩個月的長期權杖 (long lived token)
永不過期的粉絲專頁權杖
接下來,讓我們使用 Facebook 的圖形 API 測試工具來取得永不過期的權杖 (never expired token)
- 首先,讓我們登入測試帳號,並申請一個粉絲團
- 跟上面的流程完全一模一樣,我們就可以拿到永不過期的權杖 (never expired token)
PHP
長期權杖 (long lived token)
現在讓我們使用 PHP 來透過呼叫 Facebook 的 API 來取得長期權杖 (long lived token)
- 使用 PHP 的 function
file_get_contents
來呼叫 Facebook 的 APIpublic static function getLongLivedToken($token)
{
$url = 'https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=yourClientID&client_secret=yourClientSecret&fb_exchange_token=shortLivedToken;
return json_decode(file_get_contents($url), true);
} - 會得到以下資訊:
{
"result": true,
"response": {
"access_token": "EAAEpKfFACZA8BAGyTFU29VFIlEjhDaUe66eliyWdGQDfVTBUUdFZBZAGeZBEgTEwxgthvdABuzECYi1ahqm8ZCYNRSV9YMnegq7XxCouP1sR8kXMdnNFysGb2IHZBhSB3KENeTZCBzHrFSJ9BJLt9k6xkuWkJsVHnG0KahmFmybKTG6pVaFoZATN",
"expires_in": 5182393
}
}
結語
至於如何利用 PHP 來取得永不過期的粉絲專頁權杖 (never expired token),似乎需要提升 APP 的權限,這方面需要審查,所以我就暫時無法測試啦。
留言