$ facebook-> getUser()突然停止工作

时间:2013-06-25 07:39:44

标签: php facebook facebook-graph-api

我在我的网站上登录了facebook。这已经有一段时间了,但昨天突然停止了工作。我已经将问题跟踪到getUser()方法,它现在似乎总是返回0。

我的代码如下:

<?php
require_once('facebook.php');

$facebook = new Facebook(array(
  'appId'  => 'xxxxxxxxxxxxx',
  'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
));

$user = $facebook->getUser();
if ($user) {
  try {
    $profile = $facebook->api('/me');
    $logoutUrl = $facebook->getLogoutUrl(
        array(
            'next'=>$baseUrl.'/fblogin/fblogin.php?logout'
        )
    );
    $userIsLoggedIn=true;

  } catch (FacebookApiException $e) {
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
    $user = null;
    $loginUrl = $facebook->getLoginUrl(
        array(
            'scope'=>'email,publish_stream',
            'redirect_uri'=>$returnAfterLoginUrl
        )
    );
  }
}else{
    $loginUrl = $facebook->getLoginUrl(
        array(
            'scope'=>'email,publish_stream',
            'redirect_uri'=>$returnAfterLoginUrl
        )
    );
}
?>

我尝试了什么(可以在我的历史中找到)

  1. 将SDK更新到最新版本
  2. 解决Facebook PHP SDK - getUser() suddenly returns 0(添加2 $ CURL_OPTS)
  3. 解决suddenly, getUser became to return 0.(PHP 3.1.1 SDK)(将base_domain添加到$ DROP_QUERY_PARAMS)
  4. 解决Facebook login is suddenly not working anymore?(增加curlopt_connecttimeout)
  5. 创建一个没有运气的新应用程序
  6. 我正在使用PHP 5.3.3版

    我从昨天下午起就试图让它运转起来,没有任何运气:(

    有谁知道可能是什么问题,更重要的是,可能是什么解决方案?

    谢谢

5 个答案:

答案 0 :(得分:9)

您的端口80或端口241可能被阻止导致CurlException 7.要检查是否只是在您的网站上传示例文件。它会显示错误。

就我而言,我在000webhost.com上托管了我的测试版域名。它最近阻止了导致同样错误的端口80。当我将域名移动到另一个托管服务时,问题就解决了。

我希望这会有所帮助。

<强> ===== EDIT =====

问题的解决方案是(我认为虽然没有证明)获得https连接,因为我遵守php sdk在http连接中不起作用。看看我的问题here

<强> ==是啊!最后的最终和正确的答案=======

只有当您的网络托管商已禁用cURL时,才会出现这种情况(适用于100%类似问题的情况)。如果安装了cURL,您的网站将正常运行。通常,用户收到的错误(如果错误报告已打开)是
Fatal error: Uncaught CurlException: 7: couldn't connect to host thrown in /home/.../base_facebook.php on line ...

答案 1 :(得分:2)

确保禁用沙盒模式,然后重新检查您的设置,包括appId,secret。

并尝试将您的登录网址更改为$loginUrl = $this->facebook->getLoginUrl($pram);

答案 2 :(得分:1)

通过将脚本移动到服务器上的另一个子目录来解决它... / login / become / facebook / login /

我没有丝毫的线索为什么会有所作为......

答案 3 :(得分:0)

    $facebook = new Facebook(array(
        'appId' => '***************',
        'secret' => '**************************',
        'cookie' => false //add this and try
        ));

并尝试添加权限“read_stream” 清除浏览器cookie后检查这个..

答案 4 :(得分:0)

它发生在我身上,当我检查我的apache日志时,我发现了这个:

tail -f for apache log

我通过PHP SDK(使用Curl)与Facebook通信时发现了SSL问题。 你必须设置CURL_OPTS&#34; CURLOPT_SSL_VERIFYPEER&#34;到&#34;假&#34;

前:

facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;