Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $facebook->;getUser()突然停止工作_Php_Facebook_Facebook Graph Api - Fatal编程技术网

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

Php $facebook->;getUser()突然停止工作,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我已经在我的网站上登录了facebook。一段时间以来,这种方法一直很有效,但昨天突然停止了。我已经跟踪了getUser()方法的问题,该方法现在似乎总是返回0 我的代码如下所示: <?php require_once('facebook.php'); $facebook = new Facebook(array( 'appId' => 'xxxxxxxxxxxxx', 'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx' )); $u

我已经在我的网站上登录了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
        )
    );
}
?>

我尝试过的(并且可以在我的历史中找到)

  • 将SDK更新至最新版本
  • 解决方案(添加2$CURL_选项)
  • 解决方案(将基本域添加到$DROP\u QUERY\u参数)
  • 解决(增加curlopt_连接超时)
  • 创建一个新的应用程序,没有运气
  • 我使用的是PHP版本5.3.3

    从昨天下午开始,我一直在努力让它工作,但没有任何运气:(

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


    谢谢

    请确保沙盒模式已禁用,并再次检查您的设置,包括appId、secret


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

    您的端口80或端口241可能被阻止,从而导致异常7。若要检查,只需将示例文件上载到您的网站中。它将显示错误

    在我的例子中,我的beta域托管在000webhost.com上。它最近阻止了端口80,这导致了相同的错误。当我将我的域移动到另一个托管服务时,问题得到了解决

    我希望这有帮助

    ====编辑======

    这个问题的解决方案是(我认为虽然没有经过验证)获得一个https连接,因为我发现php sdk在http连接中不起作用

    =======是的!最后的正确答案========

    只有当您的web主机禁用了cURL时,才会出现这种情况(适用于100%的类似问题情况)。如果安装了cURL,您的网站将正常运行。通常,用户收到的错误(如果启用了errorreporting)是
    
    致命错误:未捕获卷曲异常:7:无法连接到/home/../base\u facebook.php联机中抛出的主机…

    facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; 
    
    并尝试添加权限“读取\u流”
    清除浏览器cookies后检查此问题。

    通过将脚本移动到服务器上的另一个子目录解决了此问题。。。 /登录/成为/facebook/login/


    我一点也不知道为什么会有不同…

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

    我发现通过PHPSDK(使用Curl)与Facebook通信时存在SSL问题。 您必须将CURL_OPTS“CURLOPT_SSL_VERIFYPEER”设置为“false”

    例:


    感谢您的回复,沙盒模式已禁用,设置正确(直到昨天,它已经正常工作了数周)。像这样更改loginUrl不会有任何好处,因为我的范围内没有$this?那么,在用户重定向到facebook登录并登录后会发生什么?它是否工作?在用户对应用程序授予适当的权限后,他返回到getUser()仍将返回0的站点:(只需从myapps中删除你的应用程序,然后再次尝试添加它。只需检查你的facebook对象是否已初始化,然后尝试此->facebook并打印你的appid。我已尝试创建一个新应用程序,同样的问题:(已初始化$facebook对象,我可以从中打印我的appid。)。
    facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;