2010-03-14 99 views
0

嗨,大家好,我对如何获得认证令牌有点遗憾。下面是我使用的收益来自授权我的应用程序的代码:GetAuthSubToken返回None

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凭证= 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

要回答我的问题:

当你的令牌只要致电:

client.token_store.add_token(sessionToken) 

和App引擎将为您存储一个新的实体类型。然后,在打电话给日历服务时,不要设置authsubtoken,因为它也会为您处理。