无法使用google plus API进行授权

时间:2012-02-02 21:29:37

标签: python authorization google-plus google-api-python-client

我正在尝试使用google plus授权我的应用。但是,当我使用人员服务并尝试获取“我”时,我尝试过的所有内容总是给我404,除非我与创建Google+ API应用的用户一起登录。对我的原因没有任何意义。

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 个答案:

答案 0 :(得分:1)

最后想出了这是什么。谷歌允许您授权任何谷歌帐户的应用程序。但是,如果授权用户尚未升级到Google+,则当应用发出第一个Google+ API请求时,请求将为404.这令人难以置信,因为当我设置OAuth2WebServerFlow时,我指定了“plus.me”作为范围。 ..恕我直言,谷歌应该告诉用户在尝试授权此OAuth请求时升级到Google+。

gp_client = OAuth2WebServerFlow(
    settings.GOOGLE_PLUS_CONSUMER_ID,
    settings.GOOGLE_PLUS_CONSUMER_SECRET,
    scope='https://www.googleapis.com/auth/plus.me',
)