2012-07-17 46 views
0

我很高兴回答这个问题https://stackoverflow.com/a/8548319/641264因为感谢它,现在我明白了访问令牌和刷新令牌之间的区别。我还瞥了一眼OAuth2WebSercer文档https://developers.google.com/accounts/docs/OAuth2WebServer 但我不知道可用于使用刷新令牌的函数/方法。对于访问令牌,我们使用:如何在Google Python API中保存并加载刷新令牌

gdata.gauth.ae_save() 
gdata.gauth.ae_load() 
token.get_access_token() 

但是如何刷新令牌?

回答

0

如果您一步往下走进来源:
[ae_save source]
[token_to_blob source]

你会看到token_to_blob被称为在令牌本身,当你调用ae_save

特别是:

elif isinstance(token, OAuth2Token): 
    return _join_token_parts(
     '2o', token.client_id, token.client_secret, token.scope, 
     token.user_agent, token.auth_uri, token.token_uri, 
     token.access_token, token.refresh_token) 

所以不只是访问令牌是保住了,但许多标记对象的其他属性。

+0

如何使用刷新令牌?使用refresh token.refresh_token会给出错误。 – tsil 2012-07-23 22:27:48

+0

这不应该是这种情况。什么是“类型(令牌)”?即使您没有刷新令牌,该值也将为“无”。在通过'ae_save'序列化令牌之前,请确保您确实拥有'refresh_token'。除非您指定'approval_prompt = force',否则后续OAuth2请求不会为您提供新的刷新标记。 – bossylobster 2012-07-24 02:08:17