我开始使用facebook API了。 我从facebook下载了示例代码,配置了我的appID和密钥。
<?php
require '../src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => '...',
'secret' => '....',
));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
// This call will always work since we are fetching public data.
$naitik = $facebook->api('/naitik');
?>
在localhost上,脚本没有错误。但在主机上我收到以下错误:
使用捆绑信息找不到或没有找到证书颁发机构
.crt 文件已成功上传
有人可能会指出我的错误吗? 提前致谢。
答案 0 :(得分:20)
将CURL中的选项设置为指向证书文件
此选项将告诉CURL您的fb_ca_chain_bundle.crt
文件与脚本位于同一文件夹中。
Facebook::$CURL_OPTS[CURLOPT_CAINFO] = getcwd().'/fb_ca_chain_bundle.crt';
在base_facebook.php第844行中,curl_exec失败并生成错误。然后脚本设置:
curl_setopt($ch, CURLOPT_CAINFO,
dirname(__FILE__) . '/fb_ca_chain_bundle.crt');
再试一次。
第二次一切顺利,没有任何问题,只会弄乱你的日志
请勿使用
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
或者中间人可以拦截你的电话!
答案 1 :(得分:5)
禁用SSL安全功能
虽然我不认识到确切的错误消息,但是通过PHP SDK(以及Curl)与Facebook通信时出现SSL问题很常见。你尝试过做这样的事吗?
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
这将禁用SSL“验证对等方”安全功能,以便它停止生成错误消息。
答案 2 :(得分:0)
从http://wordpress.org/extend/plugins/facebook-feed-grabber/获取最新的插件,并用新的
替换旧的链证书答案 3 :(得分:0)
我检查了服务器配置,一切似乎都很好。但是,我在互联网上看到了一些其他帖子,用户通过编辑
中的以下行来解决问题“base_facebook.php”
/ ** *卷曲的默认选项。 * /
public static $CURL_OPTS = array(
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => 'facebook-php-3.2',
CURLOPT_SSL_VERIFYPEER => false, (ADDED THIS LINE)
);
我已经对它进行了测试,现在可以正常运行,并成功发布到Facebook页面。
干杯!
Mudassar Ali