Возникли проблемы с подключением через API Twitter через ZendService / Twitter / Twitter.
Error: Fatal error: Call to a member function connect() on a non-object in somepath/vendor/zendframework/zendframework/library/Zend/Http/Client.php on line 1358$config = array (
'access_token' => array (
'token' => 'dummy',
'secret' => 'dummy'
),
'oauth_options' => array (
'consumerKey' => 'dummy',
'consumerSecret' => 'dummy'
),
'http_client_options' => array (
'adapter' => 'Zend\Http\Client\Adapter\Curl',
'curloptions' => array (
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false
)
)
);
$twitter = new Twitter ( $config );
print_r ($twitter->account->verifyCredentials ());
Использование curl 7.26.0 (x86_64-pc-linux-gnu) OpenSSL / 1.0.1e
PHP 5.4.35 на ZF 2.3.3
Обновление 1: Удаление раздела access_token возвращает сообщение «Bad Authentication data». Повторное включение приведет к ошибке atal: вызов функции-члена connect () для необъекта в somepath / vendor / zendframework / zendframework / library / Zend / Http / Client.php в строке 1358
щебет разрешает только SSL-соединения в конечных точках API Twitter. Эта деталь задокументирована Вот. Итак, вам нужно настроить параметры вашего адаптера в соответствии с требованиями протокола SSL.
Попробуй это:
'http_client_options' => array (
'adapter' => 'Zend\Http\Client\Adapter\Curl',
'curloptions' => array (
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_CAINFO => '/path/to/certs/ca-bundle.pem'
)
),
При проверке удаленного хоста вам необходимо предоставить один или несколько сертификатов доверенных ЦС. Значение 2 для VERIFYHOST
Параметр необходим для проверки существования общего имени, а также для проверки его соответствия указанному имени хоста. Используйте 1 только для проверки наличия имени в сертификате SSL-партнера.
Вы также можете прочитать больше о настройке SSL-соединений с помощью адаптера Curl в этот хороший учебник.
Других решений пока нет …