PHP Facebook SDK.About访问令牌

时间:2016-01-13 07:50:34

标签: php facebook sdk

现在我可以获取我自己的信息,例如我的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中,我使用相同的方式获取信息,但它失败了。

1 个答案:

答案 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);

首次请求后,您不必每次都登录。访问令牌将保存在会话中。