Не удается авторизоваться с помощью Google Plus API - PullRequest
1 голос
/ 03 февраля 2012

Я пытаюсь авторизовать свое приложение с помощью 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 Ответ

1 голос
/ 03 февраля 2012

Наконец-то понял, что это было.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',
)
...