嘿伙计们,我对如何获得身份验证令牌感到有点迷失。这是我在授权我的应用程序返回时使用的代码:
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没有正确填充,这是我应该做的事情吗?
我也在使用gdata 2.0.9
由于 马特
答案 0 :(得分:0)
回答我自己的问题:
当您获得令牌时,只需致电:
client.token_store.add_token(sessionToken)
并且App Engine会将它存储在新的实体类型中。然后,当打电话给日历服务时,不要设置authsubtoken,因为它也会照顾你。