2016-08-02 111 views
1

您好,我有點困惑,不知道如何處理Facebook API。Facebook PHP SDK獲取用戶訪問令牌

所以我成立了一個網絡掛接用於獲取圖形API的更新,當用戶更改其名稱/電子郵件等它完美,我得到的JSON,我可以看到哪些領域已被更改。

但是現在要去哪裏。我嘗試使用userID和appID獲取accessToken,但無法完成。我能夠獲得AppAccessToken,但我無法查詢用戶數據(只有id和名稱),所以我需要UserAccessToken。

我如何收到實際從

$fb->get("/{userID}?fields=name,email") 

更改的數據謝謝你的幫助,對網絡這麼多事情,我真的不能找出我需要什麼。

所有最好的, 盧克

+0

您使用哪個版本的SDK? –

+0

V4_5.0.0 :)應該是最新的版本 – SomehowLuke

回答

-1
$accessTokenEntity = new Facebook\Authentication\AccessToken(); 
$accessToken = $accessTokenEntity->getValue(); 

try { 
    // Returns a `Facebook\FacebookResponse` object 
    $response = $fb->get('/me?fields=id,name', $accessToken); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    echo 'Graph returned an error: ' . $e->getMessage(); 
    exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
    exit; 
} 

沒得機會來實際測試,但根據this它應該工作。

+0

對於我的理解它是將登錄過程會返回一個對象。所以我錯過了實際的登錄或者是讓我的用戶通過他的id訪問的東西。用戶實際上並不觸發訪問,因爲webhook會這樣做,所以我不能使用redirecturlhelper和canvashelper,因爲腳本是通過webhook調用而不是通過畫布。我想用offline_access的和終身的accessToken存儲在我的數據庫,但我寧願想打通呼叫接入,如果這是可能的... – SomehowLuke

+0

所以這是行不通的。這裏的問題是,服務器觸發登錄,只有用戶的ID,但沒有會話和其他人。那麼現在的服務器應該如何「我」以及如何獲取取證。我查了一下,並且offline_acces不再可用,所以必須有一種方法可以通過id和appid以及appsecurity訪問用戶的數據。我該如何解決這個問題? – SomehowLuke

+1

用戶令牌可延長至60天有效期。如果您的存儲令牌比此更早並且因此已失效,則您需要再次向用戶發送登錄流程以創建新令牌;沒有其他辦法。 – CBroe