Intereting Posts
Как сравнить таблицы базы данных и показать пользователю Использование preg_match для поиска всех слов в списке Функции PDO vs pg_ * как преобразовать японский английский характер нормальному английскому персонажу? Как восстановить старый сеанс, когда пользователь случайно закрывает браузер? Laravel 5.2: Сделайте что-то после входа пользователя в систему? Уничтожьте сеанс PHP на странице 403 Запрещенная ошибка при отправке данных GET paypal parameater для создания повторяющегося профиля дает ошибку, пожалуйста, помогите мне Вставка данных в базу данных с помощью Laravel 5 Отдельные записи PHP с запятой, кроме последней записи? Веб-сайт для анализа URL-адресов Как использовать именованные каналы в PHP между различными функциями или даже разными процессами без fork? Входной монитор FTP (при загрузке) Получение неправильного значения для функции variant_date_to_timestamp ()

Ошибка при попытке использовать гибридный поток входа в Google OAuth 2.0 (Google_IO_Exception) с сообщением «Ошибка HTTP: невозможно подключиться:« 0 »)

Я пытаюсь реализовать кнопку «Вход с помощью G +», используя гибридный поток на стороне сервера, и я продолжаю получать ту же ошибку:

Google_IO_Exception' with message 'HTTP Error: Unable to connect: '0' 

Я везде искал, все пробовал, я не могу это исправить. Я использую последнюю версию клиентской библиотеки Google PHP от GitHub (последнее обновление 17 мая). Я проверил миллион раз, если мои client_id & client_secret были правильными.

Вот мой код:

 set_include_path("C:\wamp\www\src" . PATH_SEPARATOR . get_include_path()); include_once '../config/config.php'; require_once 'Google/Client.php'; require_once 'Google/Service.php'; require_once 'Google/Service/Plus.php'; $client = new Google_Client(); $client->setClientId($client_id); $client->setClientSecret($client_secret); $client->setRedirectUri($redirect_uri); $client->addScope("https://www.googleapis.com/auth/plus.login"); if (isset($_REQUEST['storeToken'])) { if (isset($_POST['code'])) { $client->authenticate($_POST['code']); // ERROR $_SESSION['access_token'] = $client->getAccessToken(); unset($_SESSION['logout']); } } с set_include_path("C:\wamp\www\src" . PATH_SEPARATOR . get_include_path()); include_once '../config/config.php'; require_once 'Google/Client.php'; require_once 'Google/Service.php'; require_once 'Google/Service/Plus.php'; $client = new Google_Client(); $client->setClientId($client_id); $client->setClientSecret($client_secret); $client->setRedirectUri($redirect_uri); $client->addScope("https://www.googleapis.com/auth/plus.login"); if (isset($_REQUEST['storeToken'])) { if (isset($_POST['code'])) { $client->authenticate($_POST['code']); // ERROR $_SESSION['access_token'] = $client->getAccessToken(); unset($_SESSION['logout']); } } из set_include_path("C:\wamp\www\src" . PATH_SEPARATOR . get_include_path()); include_once '../config/config.php'; require_once 'Google/Client.php'; require_once 'Google/Service.php'; require_once 'Google/Service/Plus.php'; $client = new Google_Client(); $client->setClientId($client_id); $client->setClientSecret($client_secret); $client->setRedirectUri($redirect_uri); $client->addScope("https://www.googleapis.com/auth/plus.login"); if (isset($_REQUEST['storeToken'])) { if (isset($_POST['code'])) { $client->authenticate($_POST['code']); // ERROR $_SESSION['access_token'] = $client->getAccessToken(); unset($_SESSION['logout']); } } 

Я попробовал запрос cURL с параметром code полученным после входа пользователя в систему.

 curl --data code=4%2F3dZSVbozE_Kd4Sdf85KHPln-wChQ.ojCViNnNCQcYYKs_1NgQtmXZbUwqjAI&grant_type=authorization_code&redirect_uri=postmessage&client_id=<my_client_id>&client_secret=<my_client_secret> https://accounts.google.com/o/oauth2/token 

Он работает отлично, я получаю следующее:

 { "access_token" : "ya29.GwAwNLxa5vExHxoAAACkL-MxCUL7K6SlOLSs2DNWCBipZcpyYwcOohejabVBYg", "token_type" : "Bearer", "expires_in" : 3565, "id_token" : "<very_long_id_token>", "refresh_token" : "1/4Tj6y6yCQQFH2XzrLumNqMmurAr4Ik0pooF4nrhe1Zk" } 

Сначала я подумал, что какой-то параметр моего запроса был неправильным, потому что очень странно, что libary продолжает возвращать ту же ошибку (Google_IO_Exception 'с сообщением «Ошибка HTTP: не удается подключиться:« 0 »), даже если параметр неверен (я пробовал $client->authenticate('This is not a valid code'); ) или если запросы на google.accounts возвращают uri_mismatch. Это нормально?

Я надеюсь, что кто-то может помочь, потому что я не знаю, что делать: /

Большое спасибо !

PS: Я запускаю эти тесты с использованием WAMP Server 2.4 (PHP версии 5.4.12)

Solutions Collecting From Web of "Ошибка при попытке использовать гибридный поток входа в Google OAuth 2.0 (Google_IO_Exception) с сообщением «Ошибка HTTP: невозможно подключиться:« 0 »)"

Другая публикация (аналогичная выше) относится.

Я, наконец, решил проблему, изменив следующие настройки PHP.ini:

  1. Я установил (с помощью uncommenting) расширение = php_openssl.dll – необходимое для URL-адресов https; а также
  2. Я установил часовой пояс. Google время от времени суетливый, так что это могло повлиять на результат

Я перезапустил Apache, и все было хорошо!