0

我对 Facebook 网站身份验证有疑问 - 特别是 getuser() 返回 0...

以下代码使用 Facebook API 向 Facebook 注册用户。我知道使用 FB 的身份验证是有效的,因为当我以用户身份登录 FB 时,它表明用户已授予网站应用程序访问 FB 帐户的权限。

以下代码是用户在 FB 注册网站后用于访问 FB 帐户的代码。

session_start();

$config = array(
    'appId' => 'xxxx...',
    'secret' => 'xxxx...',//);
    'cookie' => true,);

$fb = new Facebook($config);
$user = $fb->getUser();

基本上发生的事情是,一旦用户在 facebook 上注册了应用程序,$fb 对象就不会返回值......

从其他用户的类似问题来看,很多其他人都有类似的问题。在过去的几天里,我一直在研究其他用户提供的推荐解决方案,但没有运气......

任何想法我做错了什么?

伊恩

4

2 回答 2

0

我猜你的注册用户没有注册。

尝试使用try/catch块来查看发生了什么:

$fb = new Facebook($config);
$user = $fb->getUser();
try {
    $user_profile = $fb->api('/me');
} catch (FacebookApiException $e) {
    var_dump($e);
}
于 2012-10-09T07:59:18.173 回答
0

我不确定您的页面是如何构建的。您是否在页面上提供了登录按钮?如果不是,我认为您会将您的情况与离线访问帐户混淆,这是完全不同的情况。

如果您为用户提供了登录页面的选项,您将如何构建登录按钮(或其他元素)?

您需要使用 facebook 对象生成登录 url。例如,对于一个简单的按钮,登录 url 应该像这样生成(假设这发生在 <?php ?> 块内的 PHP 文件中):

session_start();
$config = array(
    'appId' => 'xxxx...',
    'secret' => 'xxxx...',//);
    'cookie' => true /* not sure if the cookie parameter is necessary */ );

$fb = new Facebook($config);

echo '<a href="' . $fb->getLoginUrl() . '"><button>Login</button></a>';

这将为 facebook 身份验证服务器的身份验证和重定向生成必要的参数,这样您就不必担心它是如何处理的。

不确定这是否是您的问题,但如果很高兴为您服务。

于 2012-10-09T12:08:27.963 回答