[英]$facebook->getUser() suddenly stopped working
我在我的网站上登录了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
)
);
}
?>
我尝试了什么(可以在我的历史中找到)
我正在使用PHP 5.3.3版
我昨天下午一直试图让它工作,没有任何运气:(
有谁知道可能是什么问题,更重要的是,可能是什么解决方案?
谢谢
您的端口80或端口241可能被阻止导致CurlException 7.要检查是否只是在您的网站上传示例文件。 它会显示错误。
就我而言,我在000webhost.com上托管了我的测试域。 它最近阻止了导致同样错误的端口80。 当我将我的域名移动到另一个托管服务时,问题就解决了。
我希望这有帮助。
=====编辑=====
该问题的解决方案是(我认为虽然没有证明)获得https连接,因为我遵守php sdk在http连接中不起作用。 看看我的问题在这里
====== YEAH! 最后的最终和正确的答案=======
只有当您的Web主机禁用了cURL时才会出现这种情况( 适用于100%类似问题的情况 )。 如果安装了cURL,您的网站将正常运行。 通常,用户收到的错误(如果错误报告已打开)是
Fatal error: Uncaught CurlException: 7: couldn't connect to host thrown in /home/.../base_facebook.php on line ...
确保禁用沙盒模式并再次重新检查您的设置,包括appId,secret。
并尝试将您的登录URL更改为$loginUrl = $this->facebook->getLoginUrl($pram);
通过将脚本移动到服务器上的另一个子目录来解决它... / login / become / facebook / login /
我没有丝毫的线索为什么这会有所作为......
$facebook = new Facebook(array(
'appId' => '***************',
'secret' => '**************************',
'cookie' => false //add this and try
));
并尝试添加权限“read_stream”清除浏览器cookie后检查此项..
它发生在我身上,当我检查我的apache日志时,我发现了这个:
我通过PHP SDK(使用Curl)与Facebook通信时发现了SSL问题。 您必须将CURL_OPTS“CURLOPT_SSL_VERIFYPEER”设置为“false”。
例如:
facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.