我对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对象就不会返回值...
许多其他人也有类似的问题,从其他用户的类似问题来判断。过去几天我一直在努力完成其他用户提供的推荐解决方案,但没有运气......
任何想法我做错了什么?
伊恩
答案 0 :(得分:0)
我猜你的注册用户没有注册。
尝试使用try/catch
块来查看发生了什么:
$fb = new Facebook($config);
$user = $fb->getUser();
try {
$user_profile = $fb->api('/me');
} catch (FacebookApiException $e) {
var_dump($e);
}
答案 1 :(得分:0)
我不确定您的网页是如何构建的。您是否在页面上提供了登录按钮?如果不是,我认为你的情况与离线访问帐户相混淆,这完全是一个完全不同的情况。
如果您已为用户提供了登录页面的选项,那么如何构建登录按钮(或其他元素)?
您需要使用facebook对象生成登录网址。例如,对于一个简单的按钮,应该像这样生成登录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身份验证服务器的身份验证和重定向生成必要的参数,这样您就不必担心如何处理它。
不确定这是否是您的问题,但如果愿意为您提供服务。