Не удается авторизоваться с помощью Google Plus API
Я пытаюсь авторизовать свое приложение с помощью Google Plus. Тем не менее, все, что я пробовал, всегда дает мне 404, когда я пользуюсь службой людей и пытаюсь получить "меня", кроме случаев, когда я вхожу в систему с пользователем, который создал приложение API Google+. Это не имеет никакого смысла для моего понимания, почему это так.
from httplib2 import Http
from apiclient.discovery import build
credential = gp_client.step2_exchange(request.REQUEST)
http = Http()
http = credential.authorize(http)
service = build("plus", "v1", http=http)
o = service.people().get(userId='me').execute()
То же самое относится и к использованию обозревателя Google+:
http://code.google.com/apis/explorer/#_s=plus&_v=v1&_m=people.get&fields=emails
Если я переключаюсь на приватное с пользователем, который создал API, то я могу получить "меня", но если я авторизую другого пользователя, то я не могу получить "меня".
Есть идеи, что происходит?
1 ответ
Наконец-то разобрался, что это было. Google позволяет вам авторизовать любой аккаунт Google для приложения. Однако, если авторизующий пользователь не обновил до Google+, когда приложение делает свой первый запрос API Google+, запрос будет 404. Это ошеломляет, потому что, когда я настраивал OAuth2WebServerFlow, я указал "plus.me" в качестве области действия... ИМХО Google должен сказать пользователю, чтобы он обновился до Google+, когда он пытается авторизовать этот запрос OAuth.
gp_client = OAuth2WebServerFlow(
settings.GOOGLE_PLUS_CONSUMER_ID,
settings.GOOGLE_PLUS_CONSUMER_SECRET,
scope='https://www.googleapis.com/auth/plus.me',
)