0

我在 Facebook 身份验证方面遇到了一些问题。即使我已登录,该函数也会getUser()返回 0

这是我的代码:

$fb_params = array(
'appId'     => APP_ID,
'secret'    => SECRET_ID
);  
$fb = new Facebook($fb_params);

echo $fb->getUser(); // UID

有人有想法吗?

PS:“我无法长时间访问$fb->api('/me'),它说它需要一个access_token,我认为它与身份验证问题有关......”

谢谢

4

1 回答 1

1

您当前未作为用户进行身份验证,仅作为应用程序进行身份验证。因此,Facebook API 无法向您显示 /me 页面或响应 getUser() 调用,因为它不知道您尝试代表哪个用户访问 API(即“谁是 /me ?”)。您也只能访问可公开访问的信息。

您需要让用户通过 Oauth2 对您的应用程序进行身份验证,存储您返回的 access_token,然后将其包含在以后的任何调用中(例如 WIRQjCey1.3600.1309525200.0-509450630|eD6SAR">https://graph.facebook. com/me?access_token=2227470867|2.AQB-_ WIRQjCey1 .3600.1309525200.0-509450630|eD6SAR...)。

为此,您可以使用 PHP SDK

$loginUrl = $fb->getLoginUrl();
echo "<a href='$loginUrl'>Login with Facebook</a>";

单击该链接并让用户进行身份验证会将 access_token 存储到 $_SESSION,并且当您点击刷新“new Facebook($fb_params);”时 构造函数将从 $_SESSION 中挑选出访问令牌并将其用于所有未来的调用,然后调用像 $fb->getUser(); 将正确返回。

SDK 的示例文件夹中有一个功能示例,此处为: https ://github.com/facebook/php-sdk 。您可以在作为应用程序(仅限公共数据访问)和用户身份验证时使用它来尝试调用。

于 2011-07-01T11:19:13.123 回答