0

やあみんな、私は認証トークンを取得する方法に少し迷っています。アプリの承認から戻ったときに使用しているコードは次のとおりです。

client = gdata.service.GDataService()
gdata.alt.appengine.run_on_appengine(client)
sessionToken = gdata.auth.extract_auth_sub_token_from_url(self.request.uri)
client.UpgradeToSessionToken(sessionToken)
logging.info(client.GetAuthSubToken())

ログに記録されるのは「なし」なので、正しいように見えます:-(これを使用する場合:

temp = client.upgrade_to_session_token(sessionToken)
logging.info(dump(temp))

私はこれを手に入れます:

{'scopes':[' http://www.google.com/calendar/feeds/ ']、'auth_header':'AuthSub token = CNKe7drpFRDzp8uVARjD-s-wAg'}

AuthSubトークンを取得していることがわかります。それを解析してトークンを取得することもできたと思いますが、それはうまく機能しないようです。

AuthSubTokenInfoを使用しようとすると、次のようになります。

Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/__init__.py", line 507, in __call__
    handler.get(*groups)
  File "controllers/indexController.py", line 47, in get
    logging.info(client.AuthSubTokenInfo())
  File "/Users/matthusby/Dropbox/appengine/projects/FBCal/gdata/service.py", line 938, in AuthSubTokenInfo
    token = self.token_store.find_token(scopes[0])
TypeError: 'NoneType' object is unsubscriptable

私のtoken_storeが正しく入力されていないようですが、それは私がすべきことですか?

また、gdata2.0.9を使用しています

ありがとうマット

4

1 に答える 1

0

私自身の質問に答えるには:

トークンを取得したら、次のように呼び出します。

client.token_store.add_token(sessionToken)

AppEngineはそれを新しいエンティティタイプに保存します。次に、カレンダーサービスを呼び出すときは、authsubtokenを設定しないでください。これにより、authsubtokenも処理されます。

于 2010-03-16T04:55:11.930 に答える