我开始使用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');
?>
Run Code Online (Sandbox Code Playgroud)
在localhost上,脚本工作没有错误.但在主机上我收到以下错误:
使用捆绑信息找不到或没有找到证书颁发机构
该.CRT文件被成功上传
有人可能会指出我的错误吗?提前致谢.
小智 20
将CURL中的选项设置为指向证书文件
此选项将告诉CURL您的fb_ca_chain_bundle.crt文件与脚本位于同一文件夹中.
Facebook::$CURL_OPTS[CURLOPT_CAINFO] = getcwd().'/fb_ca_chain_bundle.crt';
Run Code Online (Sandbox Code Playgroud)
在base_facebook.php第844行中,curl_exec失败并生成错误.然后脚本设置:
curl_setopt($ch, CURLOPT_CAINFO,
dirname(__FILE__) . '/fb_ca_chain_bundle.crt');
Run Code Online (Sandbox Code Playgroud)
然后再试一次.
第二次一切都很好,没有问题,它只会弄乱你的日志
不使用
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
或者一个中间人将能够拦截你的电话!
小智 5
禁用SSL安全功能
虽然我不认识到确切的错误消息,但通过PHP SDK(以及Curl)与Facebook通信时的SSL问题很常见.你有没有试过这样的事情?
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
Run Code Online (Sandbox Code Playgroud)
这将禁用SSL"验证对等"安全功能,以便它停止生成错误消息.
| 归档时间: |
|
| 查看次数: |
13800 次 |
| 最近记录: |