2010-03-14 98 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,因爲它也會爲您處理。