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))

我明白了:

{'范围':[' 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 没有正确填写,这是我应该做的吗?

我也在使用 gdata 2.0.9

谢谢马特

4

1 回答 1

0

回答我自己的问题:

当您获得令牌时,只需调用:

client.token_store.add_token(sessionToken)

App Engine 会为您将其存储在一个新的实体类型中。然后,在调用日历服务时,不要设置 authsubtoken,因为它也会为您处理。

于 2010-03-16T04:55:11.930 回答