原來是現在使用PHP SDK取得的access_token只有1小時的壽命,以前是永久性(offline)access_token,所以為了取得永久性access_token,爬了好多文才找到方法,才真正解決了這個問題。
請依照以下步驟取得永久性access_token:
- 在瀏覽器網址列輸入以下網址,然後運行網頁後,會在網址列取得一串新的網址:
- 複制新網址關鍵字code以後的內容,並放入以下相同的位址,然後運行網頁
- 將上一步驟所複製的字串,放到關鍵字access_token後,再運行網頁,此時會下載一個json檔,永久性的access_token就在裡面。
- 開啟json檔
https://www.facebook.com/dialog/oauth?
client_id=應用程式 ID&
redirect_uri=運行PHP SDK的完整網址,此網域必須和應用程式網域相同
範例:瀏覽器網址列輸入https://www.facebook.com/dialog/oauth?client_id=應用程式 ID&redirect_uri=http://test.ntu.edu.tw/index.php
得到新網址:
http://test.ntu.edu.tw/index.php?
code=AQARaTYme56oH_pC0n9qrfawrPA0dhRz4aKwCdjlMfwJ8aFMTh31pudqdvad5oUOmnhsE34ud7vfsbthcmKYqCRpgf3WQbIDZNd7PGvfEoVKls5ZoYHY3Odorh_4yTu6gCjEyMYYiUpdZ6wXJK7dq_rtII3THrE28Q7Sd9aNj9ZOGvpOdXYIOicQVbDo6YXMX1LdVr5LXZEpeSSxAylHt#_=_
https://graph.facebook.com/oauth/access_token?
client_id=應用程式 ID&
redirect_uri=http://test.ntu.edu.tw/index.php&
client_secret=應用程式密鑰&
code=AQARaTYme56oH_pC0n9qrfawrPA0dhRz4aKwCdjlMfwJ8aFMTh31pudqdvad5oUOmnhsE34ud7vfsbthcmKYqCRpgf3WQbIDZNd7PGvfEoVKls5ZoYHY3Odorh_4yTu6gCjEyMYYiUpdZ6wXJK7dq_rtII3THrE28Q7Sd9aNj9ZOGvpOdXYIOicQVbDo6YXMX1LdVr5LXZEpeSSxAylHt#_=_
此時網頁內容會出現一串文字,複製紅字部份
access_token=BAADZBcojVI3UBANoiZBWUSCWHuDE9HyLxx5MyILH1GnNvIvZAODZBab8YVOleECDZAvJBPBuEk22v0Y9p8LDyZBX2GIiNHR9vdZBJo5BFZBh693xtXkfDPYDQZCKi3IZCdFJQEYd3AUGYlVsSs9xOTB6RtS0Kb7puZBqKOqZAKZBwrDZCLaPpV8JqpmIlVFb8vcZD&expires=5183974
https://graph.facebook.com/me/accounts?access_token=BAADZBcojVI3UBANoiZBWUSCWHu9HyLxx5MyILH1GnNvIvZAODZBab8YUhgVOleECDZAvJBPBuEk22v0Y9p8LDyZBX2GIiNHR9vdZBJo5BFZBh693xtXkfDPYDQZCKi3IZCdFJQEYd3AUGYlVsSs9xOTBM1HKb7puZBqKOqZAKZBwrDZCLaPpV8JqpmIlVFb8vcZD
{
"data": [
{
"category": "University",
"name": "",
"access_token": "BAADZBcojVI3UBAAxS2bUhc7i8jF1MFGvDgUrZCcs5Rh8tGM81QdSnkWbIPWyTeOEzVsYKjwjISyZCCS6drFHZApx2hzuZBivysbbhYPKcfntTN5nElRTbGkiW8XStTf1SjdXZCJCVZArZCBCTkxxDXvKYprYEPzaZC61wU46s0s0WDlsoRUEbZAzHQlstXAZDZD",
"id": "87654321",
.....