oAuth2WebServerFlow を使用して oAuth アクセス トークンを取得し、ユーザーの連絡先のリストを取得しています。Web フレームワークとして web2py を使用しています。
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
さまざまな方法を試しましたが、成功しませんでした。通常、「Invalid Grant」という 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??>>)
誰でもこれを手伝ってもらえますか?