Запрос электронной почты пользователя из Google Api возвращает несанкционированную ошибку 401 - PullRequest
3 голосов
/ 02 июля 2011

Я пытаюсь подключиться к Google API, и он возвращает: failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized Я запросил токен доступа, и он вернул мне ххх, после этого я подключаюсь к Google API, используя следующий код PHP:

$opts = array('http' =>
        array(
        'method'  => 'GET',
        'header' => "Authorization: OAuth $access_token\r\nContent-Type: application/json\r\n",
        )
    );
    $context = stream_context_create($opts);
    $result = file_get_contents('https://www.googleapis.com/userinfo/email?alt=json',false,$context);

ГдеЭто ошибка, я написал неправильно заголовки, или что-то еще?Обновление: $ access_token - это значение, которое я получил в json, запросив его.

Ответы [ 2 ]

0 голосов
/ 27 января 2013

Проверьте, как это сделать в php, но при входе вашего клиента в Google вы должны установить параметр RequestPermission, чтобы вы могли получать информацию из профиля пользователя

requestPermissions: 'https://www.googleapis.com/auth/userinfo.profile'

0 голосов
/ 13 июня 2012
  • Вам не нужен заголовок типа контента для запроса GET.
  • Вам нужно запросить этот URL, чтобы получить информацию о пользователе: https://www.googleapis.com/oauth2/v2/userinfo
  • Убедитесь, что значение $access_token содержит правильно авторизованный токен доступа, для этого вам нужно, чтобы ваш пользователь прошел через поток OAUth 2.0.

Все это там задокументировано: https://developers.google.com/accounts/docs/OAuth2Login

...