2013-04-30 3 views
0

UPDATE Если я выполнить curl_error() это получает возвращается протокол HTTPS не поддерживается или отключен в Libcurlcurl php не может получить токен доступа из Google. Curl возвращает ничего

если я отправить локон запрос через командную строку я получаю маркер доступа отлично:

локон --data "код = удален & client_id = удален & client_secret = удален & redirect_uri = https://group.cs.cf.ac.uk/group3/oAuth2redirect.php&scope=https://www.googleapis.com/auth/calendar&grant_type=authorization_code" https://accounts.google.com/o/oauth2/token

Однако, когда я пытаюсь сделать это с помощью PHP локон просто ничего не возвращает

$code = $_GET['code']; 
$client_id = "removed"; 
$client_secret = "removed"; 
$redirectUri = "https://group.cs.cf.ac.uk/group3/oAuth2redirect.php"; 
$scope = "https://www.googleapis.com/auth/calendar"; 
$grant_type = "authorization_code"; 
$url = "https://accounts.google.com/o/oauth2/token/"; 

$params = array(
      'code' => $code, 
      'client_id' => $client_id, 
      'client_secret' => $client_secret, 
      'redirect_uri' => $redirectUri, 
      'scope' => $scope, 
      'grant_type' => $grant_type 
     ); 


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 
$response = curl_exec($ch); 
curl_close($ch); 

print_r($response); 

Кто-нибудь знает, почему это происходит, я думаю, что это может быть связано с заголовками, однако я действительно не могу это исправить.

любая помощь будет удивительным

редактировать с использованием библиотеки Google для OAuth2 не вариант

ответ

2

Я решил проблему сейчас. Оказывается, завиток не был настроен на выполнение запросов ssl (так как очевидно, что curl_error() возвращал протокол https, который не поддерживается или не отключен в libcurl.

2

Я думаю, что проблема создания SSL. Google - https, поэтому для этого требуется set_opt («CURLOPT_SSL_VERIFYPEER», val), для более подробной информации посетите, например, http://www.php.net/manual/en/function.curl-setopt-array.php, это может быть проблемой.

+0

Я уже пробовал это (я удалил параметры, когда это не было работа), но он все равно ничего не возвращает – zidsal

+0

Я только что сделал curl_error() в коде, и я вернулся. Протокол https не поддерживается или отключен в libcurlbool (false – zidsal

Смежные вопросы