OAuth 2.0シーケンスは、次のようなものです(登録済みアプリに対して適切に定義されたアプリケーション定数が与えられた場合)。
リクエストトークンを生成します。
token = gdata.gauth.OAuth2Token(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
scope=" ".join(SCOPES),
user_agent=USER_AGENT)
リクエストトークンを承認します。単純なコマンドラインアプリの場合、次のようなことができます。
print 'Visit the following URL in your browser to authorise this app:'
print str(token.generate_authorize_url(redirect_url=REDIRECT_URI))
print 'After agreeing to authorise the app, copy the verification code from the browser.'
access_code = raw_input('Please enter the verification code: ')
アクセストークンを取得します。
token.get_access_token(access_code)
gdataクライアントを作成します。
client = gdata.docs.client.DocsClient(source=APP_NAME)
クライアントを承認します。
client = token.authorize(client)
次の手順を実行することで、後で使用するためにアクセストークンを保存できます(したがって、トークンが再び期限切れになるまで手動認証手順を実行する必要はありません)。
f = open(tokenfile, 'w')
blob = gdata.gauth.token_to_blob(token)
f.write(blob)
f.close()
次回開始するときは、次のようにして保存したトークンを再利用できます。
f = open(tokenfile, 'r')
blob = f.read()
f.close()
if blob:
token = gdata.gauth.token_from_blob(blob)
次に、認証シーケンスへの唯一の変更は、refresh_token引数を指定してこのトークンをOAuth2Tokenに渡すことです。
token = gdata.gauth.OAuth2Token(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
scope=" ".join(SCOPES),
user_agent=USER_AGENT,
refresh_token=token.refresh_token)
お役に立てれば。それを解決するのに少し時間がかかりました:-)。