Facebook PHP SDK 报错
Posted
技术标签:
【中文标题】Facebook PHP SDK 报错【英文标题】:Facebook PHP SDK giving an error 【发布时间】:2011-07-23 13:47:18 【问题描述】:我正在尝试运行 Facebook 的 php SDK 附带的示例,但出现以下错误:
致命错误:未捕获的 CurlException: 60:SSL证书问题,验证 CA 证书没问题。细节: 错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书 验证失败 C:\wamp\www\fb\src\facebook.php 上 第 614 行
任何想法我做错了什么?
【问题讨论】:
【参考方案1】:问题是 cURL 没有被配置为信任服务器的 HTTPS 证书,你可以通过添加这行代码来解决这个问题:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
【讨论】:
这非常有帮助,尤其是对于那些在本地测试 Facebook 应用程序的人!为了完成这项工作,我必须实际添加 $opts[CURLOPT_SSL_VERIFYPEER] = false;在第 935 行附近的 base_facebook.php 中,在 curl_setopt_array($ch, $opts); 之前 @BryanGentry 在我的网站投入生产后是否建议删除该行代码? 我建议将其删除以用于实时生产应用程序。 您可能不想禁用 SSL 验证。根本原因是 Facebook 更新了他们的 SSL 证书并且根不可用。 FB SDK on github 包含更新的根证书【参考方案2】:我刚刚遇到了同样的问题,在我的情况下禁用对等验证是不可接受的。 我更新了 fa_ca_chain_bundle.crt 文件(来自facebook's gitbub),它现在可以工作了。
问候, 马立克
【讨论】:
我同意。禁用 SSL 验证是个糟糕的主意。 你能告诉我你下载crt文件后把它放在哪里,这样它就可以工作了吗?【参考方案3】:Raymond Ho 添加这行代码的答案工作正常:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
只需确保新的 facebook sdk 之前将其包含在“Facebook_base”文件中即可:
$result = curl_exec($ch);
谢谢。
【讨论】:
【参考方案4】:找到这一行
并紧随其后,添加:
$opts[CURLOPT_SSL_VERIFYPEER] = false;
【讨论】:
【参考方案5】:另一种方法是添加这一行,与其他回复的建议相同,但在一行中,请确保首先包含 Facebook SDK
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
【讨论】:
【参考方案6】:我也遇到了同样的问题,你只需要更新你可以在这里找到的 crt 文件 https://raw.githubusercontent.com/facebook/facebook-php-sdk/master/src/fb_ca_chain_bundle.crt
crt 文件与出现该错误的文件位于同一文件夹中
【讨论】:
@ColonelThirtyTwo 在这种情况下,它是一个加密的 .crt 文件,需要解决这个问题,除了在外部链接到它之外,他无法真正分享它,他提供的链接来自 facebook 的官方sdk,它不太可能宕机以上是关于Facebook PHP SDK 报错的主要内容,如果未能解决你的问题,请参考以下文章
Firebase SDK 与 Facebook SDK 冲突
Facebook SDK iOS 邀请没有 FBWebDialogs 的用户
Facebook Unity SDK 如何为(喜欢 Facebook 页面)添加点赞按钮?
Facebook Graph API Explorer 和 iOS SDK API 调用返回不同的结果