2016-07-15 2 views
0

Сценарий.Почему этот токен доступа недействителен мгновенно?

  1. Создано кнопку Google+ Sign-On для пользователя, чтобы войти Это работает.

  2. Сохранил токен доступа и распечатал его на домашней странице индекса, чтобы убедиться, что токен доступа фактически существует. Это работает.

  3. Попытайтесь использовать тот же токен, чтобы авторизовать учетную запись пользователя (мой в данном случае), чтобы сделать АВТОРИЗОВЫЕ звонки в API Google. Это продолжает отвечать «invalid_token».

Итак, почему недействительный токен для запроса GET, сделанный почти сразу после того, как я сохранил и распечатал токен доступа на странице? Я вызываю неправильный URI или предоставляю неправильные параметры? Токен доступа был создан, но ответ, который я получил ниже, - это то, что я вижу, которое включает в себя код состояния, ReasonPhrase, RequestMessage, заголовки и содержимое:

Google Response: Unauthorized - Unauthorized - метод: GET, RequestUri: https://www.googleapis.com/consumersurveys/v2/surveys?key= {MY_API_KEY} ', Версия: 1.1, Контент:, Заголовки: {Принять: приложение/json Авторизация: Носитель abcdefghijklmnopqrstuvqxyz123456789} - Vary: X-Origin, Origin, Accept-Encoding X-Content-Type-Options: nosniff X-Frame -Опции: SAMEORIGIN X-XSS-Protection: 1; mode = block Alternate-Protocol: 443: quic Alt-Svc: quic = ": 443"; ма = 2592000; v = "36,35,34,33,32,31,30,29,28,27,26,25" Transfer-Encoding: chunked Accept-Ranges: none Cache-Control: max-age = 0, private Дата: Пт, 15 июл 2016 18:10:37 GMT Сервер: GSE WWW-Authenticate: Bearer realm = "https://accounts.google.com/", error = invalid_token - System.Net.Http.StreamContent

Google Ток доступа, напечатанный на странице: abcdefghijklmnopqrstuvqxyz123456789

Все, что я просто пытаюсь сделать, - это авторизованные звонки в API Google, и для этого мне нужно сделать запрос GET и указать свой API-ключ и предоставить токен доступа (который соответствует печатному токену), но когда я это делаю, он говорит invalid_token и несанкционирован. Почему он все это говорит?

Этот вопрос является продолжением моего другого вопроса: GET call to a Google API responds with "Unauthorized"

ответ

0

Я считаю, что вопрос заключается в том, что маркер доступа (который я проверил через Postman) требуется больше областей, чтобы полностью проверить подлинность меня, что имеет смысл, так как этот API содержит которые я пытаюсь получить, которые также связаны с учетной записью Google.

Более подробную информацию о добавлении областей в C# код можно найти здесь: http://www.oauthforaspnet.com/providers/google/

Это также ответил здесь: Why do only OAuth 2.0 Playground access tokens work for Google API?

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