2016-01-13 192 views
0

現在我可以得到我自己的信息,例如我的id,用戶名。但是當我使用此訪問令牌來獲取我的朋友列表時,則錯誤是: 一個活動訪問令牌必須用於查詢有關當前用戶的信息。 這是什麼意思?爲什麼訪問令牌不起作用? 第一PHP:PHP Facebook SDK.About訪問令牌

$permissions = ['email']; // Optional permissions 
$loginUrl = $helper->getLoginUrl('http://my_ip/facebook/login-callback.php', $permissions); 

第二PHP: (我可以得到我的信息):

try { 
    $response = $fb->get('/me'); 
    var_dump($response); 
    echo "<br>"; 
    $userNode = $response->getGraphUser(); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
// When Graph returns an error 
echo 'Graph returned an error: ' . $e->getMessage(); 
exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
// When validation fails or other local issues 
echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
exit; 
} 
//echo "<br>"; 
echo 'logged in as the id '.$userNode->getId()."<br>"; 
echo 'Logged in as ' . $userNode->getName()."<br>"; 
echo 'the user picture is '.$userNode->getPicture()."<br>"; 
$picture = $userNode->getPicture(); 

和:

$permissions = ['user_friends']; 
$friendsUrl = $helper->getLoginUrl('http://my_ip/facebook/friends-callback.php',$permissions); 

終於,在第三PHP中,我使用以相同的方式獲取信息,但它是失敗的。

+0

請提供一些源代碼 –

+0

你可以編輯你的問題,並添加一個來源嗎? –

+0

是的,我添加了源代碼。 – James

回答

0

我想你錯過了Facebook API的概念。

首先,你必須獲得用戶的許可,接受您的請求:

$permissions = ['email', 'user_friends']; // Permissions 
$loginUrl = $helper->getLoginUrl('http://my_ip/facebook/login-callback.php', $permissions); 

然後,在你的login-callback.php文件,您可以根據請求的權限訪問API。對於朋友列表:

$response = $fb->get('/me/friends'); 
var_dump($response); 

您不必在每次首次請求後都登錄。訪問令牌將保存在會話中。

+0

是的,我知道,這是我第一次嘗試獲取好友列表,但它也不起作用。所以我更改了我的代碼和請求,我找不到處理它的方法。還有其他的例子嗎? – James