Facebook PHP SDK:未知 SSL 协议错误
Facebook PHP SDK: Unknown SSL protocol error
我有一个 PHP
脚本,它通过 Facebook SDK
向 Facebook API Graph
发出 PHP
请求 PHP
。
几天来,我的脚本失败了(50% 或更多),我遇到了这个错误:
Unknown SSL protocol error in connection to graph.facebook.com:443
我不知道为什么因为:
- 我没有修改脚本。
- 我没有更改服务器上的任何内容。
- 此外,我的脚本在两台服务器上运行,两台服务器都出现问题。
详情如下:
#0 /var/www/oie/vendor/facebook/php-sdk-v4/src/Facebook/FacebookClient.php(216): Facebook\HttpClients\FacebookCurlHttpClient->send('https://graph.f...', 'GET', '', Array, 60) #1 /var/www/oie/vendor/facebook/php-sdk-v4/src/Facebook/Facebook.php(469): Facebook\FacebookClient->sendRequest(Object(Facebook\FacebookRequest)) #2 /var/www/oie/vendor/facebook/php-sdk-v4/src/Facebook/Facebook.php(342): Facebook\Facebook->sendRequest('GET', '273607869342343...', Array, NULL, NULL, NULL) #3 /var/www/oie/src/AppBundle/Controller/APIGraphController.php(239): Facebook\Facebook->get('273607869342343...') #4 [internal function]: AppBundle\Controller\APIGraphController->importAction(Object(Symfony\Component\HttpFoundation\Request)) #5 /var/www/oie/var/bootstrap.php.cache(3042): call_user_func_array(Array, Array) #6 /var/www/oie/var/bootstrap.php.cache(2997): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #7 /var/www/oie/var/bootstrap.php.cache(2337): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #8 /var/www/oie/web/app.php(18): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #9 {main}
有什么问题?
我和 https://packagist.org/packages/facebook/graph-sdk#4.0.23
有同样的问题(SSL 协议错误)
https://packagist.org/packages/facebook/php-sdk-v4 已放弃,仅供参考
问题在于 SSL 证书和 cURL 协商
我已经解决了这个变化
在 vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurlHttpClient.php
或 vendor/facebook/php-sdk-v4/src/Facebook/HttpClients/FacebookCurlHttpClient.php
内
search public function openConnection
函数和内部选项数组 add
CURLOPT_SSLVERSION => 6
并改变
CURLOPT_SSL_VERIFYPEER => false
我有一个 PHP
脚本,它通过 Facebook SDK
向 Facebook API Graph
发出 PHP
请求 PHP
。
几天来,我的脚本失败了(50% 或更多),我遇到了这个错误:
Unknown SSL protocol error in connection to graph.facebook.com:443
我不知道为什么因为:
- 我没有修改脚本。
- 我没有更改服务器上的任何内容。
- 此外,我的脚本在两台服务器上运行,两台服务器都出现问题。
详情如下:
#0 /var/www/oie/vendor/facebook/php-sdk-v4/src/Facebook/FacebookClient.php(216): Facebook\HttpClients\FacebookCurlHttpClient->send('https://graph.f...', 'GET', '', Array, 60) #1 /var/www/oie/vendor/facebook/php-sdk-v4/src/Facebook/Facebook.php(469): Facebook\FacebookClient->sendRequest(Object(Facebook\FacebookRequest)) #2 /var/www/oie/vendor/facebook/php-sdk-v4/src/Facebook/Facebook.php(342): Facebook\Facebook->sendRequest('GET', '273607869342343...', Array, NULL, NULL, NULL) #3 /var/www/oie/src/AppBundle/Controller/APIGraphController.php(239): Facebook\Facebook->get('273607869342343...') #4 [internal function]: AppBundle\Controller\APIGraphController->importAction(Object(Symfony\Component\HttpFoundation\Request)) #5 /var/www/oie/var/bootstrap.php.cache(3042): call_user_func_array(Array, Array) #6 /var/www/oie/var/bootstrap.php.cache(2997): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #7 /var/www/oie/var/bootstrap.php.cache(2337): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #8 /var/www/oie/web/app.php(18): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #9 {main}
有什么问题?
我和 https://packagist.org/packages/facebook/graph-sdk#4.0.23
有同样的问题(SSL 协议错误)https://packagist.org/packages/facebook/php-sdk-v4 已放弃,仅供参考
问题在于 SSL 证书和 cURL 协商
我已经解决了这个变化
在 vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurlHttpClient.php
或 vendor/facebook/php-sdk-v4/src/Facebook/HttpClients/FacebookCurlHttpClient.php
search public function openConnection
函数和内部选项数组 add
CURLOPT_SSLVERSION => 6
并改变
CURLOPT_SSL_VERIFYPEER => false