繁体   English   中英

facebook-> getUser()方法返回0

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM