我在我的网站上登录了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版
我从昨天下午起就试图让它运转起来,没有任何运气:(
有谁知道可能是什么问题,更重要的是,可能是什么解决方案?
谢谢
答案 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日志时,我发现了这个:
我通过PHP SDK(使用Curl)与Facebook通信时发现了SSL问题。 你必须设置CURL_OPTS&#34; CURLOPT_SSL_VERIFYPEER&#34;到&#34;假&#34;
前:
facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;