Я начинаю с API facebook. Я загрузил код примера из 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 был загружен с успехом
можно указать на мою ошибку? заранее спасибо.
Установите параметр в CURL, чтобы указать файл сертификата
Этот параметр сообщает CURL, что ваш файл fb_ca_chain_bundle.crt
находится в той же папке, что и ваш скрипт.
Facebook::$CURL_OPTS[CURLOPT_CAINFO] = getcwd().'/fb_ca_chain_bundle.crt';
В строке 844 base_facebook.php curl_exec завершается сбой и генерируется ошибка. Затем скрипт устанавливает:
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/fb_ca_chain_bundle.crt');
и пытается снова.
Второй раз все хорошо, нет проблем, это просто делает беспорядок вашего журнала
Не используй
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
Или человек-в-середине сможет перехватить ваш звонок!
Отключить функцию безопасности SSL
Хотя я не понимаю, что точное сообщение об ошибке, проблемы с SSL при общении с Facebook через PHP SDK (и, следовательно, Curl) являются общими. Вы пытались сделать что-то подобное?
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
Это отключит функцию безопасности SSL Verify Peer, чтобы она перестала генерировать сообщение об ошибке.
получить последний плагин из http://wordpress.org/extend/plugins/facebook-feed-grabber/ и заменить старый сертификат цепи на новый
Я проверил конфигурацию сервера, и все кажется прекрасным. Однако я видел несколько других сообщений в Интернете, где пользователи исправили проблему, отредактировав следующие строки в
"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.
Ура!
Мудассар Али