现在我可以获得自己的信息,如我的id、用户名。但当我使用此访问令牌来获取我的朋友列表时,错误是:必须使用活动访问令牌来查询有关当前用户的信息。这是什么意思?为什么访问令牌不起作用?第一个php:
$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中,我使用相同的方式获取信息,但失败了。
我认为您误解了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);
你不必每次都在第一次请求后登录。访问令牌将保存在会话中。