我正在使用 oAuth2WebServerFlow 获取 oAuth 访问令牌,然后检索用户联系人列表。我使用 web2py 作为 web 框架。
flow = oauth2client.client.OAuth2WebServerFlow(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
scope='https://www.google.com/m8/feeds',
user_agent=USER_AGENT)
callback = 'http://127.0.0.1:8000/Test/searcher/oauth2callback'
authorise_url = flow.step1_get_authorize_url(callback)
session.flow = pickle.dumps(flow)
redirect(authorise_url)
然后按如下方式处理重定向
flow = pickle.loads(session.flow)
credentials = flow.step2_exchange(request.vars)
我的问题是如何将上面返回的 OAuth2Credentials 对象更改为 OAuth2AccessToken 对象,然后我可以使用它来授权对联系人库的请求,例如:
gc = gdata.contacts.client.ContactsClient(source="")
token.authorize(gc)
gc.GetContacts
我尝试了各种方法都没有成功,通常会收到“无效授权”的 oAuth2AccessTokenError 消息。我在想这样的事情可能会奏效,但也认为必须有一种更简单的方法!
token = gdata.gauth.OAuth2Token(client_id=CLIENT_ID, client_secret=CLIENT_SECRET, scope='https://www.google.com/m8/feeds', user_agent=USER_AGENT)
token.redirect_uri = 'http://127.0.0.1:8000/Test/searcher/oauth2callback'
token.get_access_token(<<code to pass the access_token out of the Credentials object??>>)
有人能帮忙吗?