[英]facebook->getUser() method returning 0
我在我的网站上使用Facebook功能登录。 问题是获得成功的身份验证之后, $facebook->getUser()
方法返回0,因此,它没有在其余代码中出现。 为了解决此问题,我修改了我的APP ID和密钥,也创建了新的APP,但仍然无法正常工作。 在Google上也做了很多工作,但没有成功。
以下是我的代码:
public function facebookregisterAction() {
require 'auth/src/facebook.php';
$facebook = new Facebook(array('appId' => 'xxxxxxxxxxxxxxx','secret' => 'xxxxxxxxxxxxxxxxxxxxxxx','cookie' => true));
$session = new Zend_Session_Namespace('user');
$user = $facebook->getUser();
if ($session->islogout != 1) {
if ($user) {
try {
$user_profile = $facebook->api('/me');
}catch(Exception $e){}
}
}
谢谢
作为一个普遍的答案,我发现从facebook-php-sdk目录中的example.php开始很有帮助。
就我而言,我的测试应用程序的URL与站点URL不同。 example.php文件提供了一条错误消息,该消息足以诊断和纠正问题。
这也是实际用法的一个很好的例子。
如此说来,您似乎缺少了一部分。 用户必须先访问您应用程序的Facebook登录URL,然后API才非常有用(除了获取公共信息之外)。 要找到此URL,请尝试:
$url = $facebook->getLoginUrl();
您可以为用户提供一个单击链接,或者在需要登录时将用户悄悄地重定向到该URL。 “ Hello,World!”类型的开始类似于:
if ($user) {
$url = $facebook->getLogoutUrl();
$message = "Click here to log out";
} else {
$url = $facebook->getLoginUrl();
$message = "Click here to log in";
}
print "<a href=$url>$message</a>";
但是您很快就会遇到example.php文件所涵盖的内容:当用户退出Facebook时,“访问令牌”(如会话ID)不会被清除。 您的应用程序仍然会看到有效的用户对象,但是任何访问Facebook的API调用都会失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.