2

我在facebook dev上找不到任何示例。或在這裏在stackoverflow,所以我需要做這個職位,我不認爲我必須。如何使用我的長(60天)訪問令牌從facebook獲取用戶數據(離線)

我有一個網站,它使用Facebook JavaScript SDK登錄用戶。 當我登錄的用戶我使用

FB.login(), scope:{'email, offline_access'} 

當完成了登陸我得到了短暫的訪問令牌,並將其傳遞到:

https://graph.facebook.com/oauth/access_token? 
    grant_type=fb_exchange_token&   
    client_id=APP_ID& 
    client_secret=APP_SECRET& 
    fb_exchange_token=SHORT_LIVED_ACCESS_TOKEN 

,所以我得到了長壽命,60天,令牌作爲迴應。這是完成服務器端,我保存在我的數據庫中的新持久令牌以及Facebook ID等。

現在我的問題。每天在某個特定時間,我想使用訪問令牌更新數據庫中的用戶數據,我已經閱讀了它。但我該怎麼做?

在FB.login()之後,我習慣這樣做,但現在當用戶不登錄時我不知道如何使用我的持久標記來調用FB.api?

FB.api(/me....) 

問候, 的Kristoffer

+0

'offline_access'不再存在,所以不要問它。如果你想更新一個數據庫,那麼我假設我們正在討論服務器端的東西 - 那麼爲什麼要使用FB.api呢? – CBroe

+0

好吧,我知道它的棄用,但不知道我是否仍然需要它。將刪除它然後 – korrekorre

回答

1

正如你必須同步/時,不登錄用戶更新信息,你將不得不使用服務器端的交互。 您可以使用您保存的Extended Access Token並使用setAccessToken()方法將其設置爲Facebook PHP SDK

$facebook->setAccessToken($extended_access_token); 

此之後,你可以調用$ facebook-> API(...)方法來執行,你打算任務。

+0

雖然我沒有使用PHP作爲服務器語言。我使用Scala和Play框架。任何想法如何解決? – korrekorre

+1

第一個鏈接解釋瞭如何通過API擴展短期用戶訪問令牌 - 您實現它的語言無關緊要。 – CBroe

+1

我沒有任何擴展令牌的問題。我的問題是使用它從Facebook獲取數據,但不是從JavaScript或PHP獲取數據。我確實找到了用於調用圖表api的正確URL:http://graph.facebook.com/'facebookID'?access_token = xxxx ... – korrekorre

相關問題