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