如何在Google Python API中保存并加载刷新令牌
问题描述:
我很高兴回答这个问题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()
但是如何刷新令牌?
答
如果您一步往下走进来源:
[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)
所以不只是访问令牌是保住了,但许多标记对象的其他属性。
如何使用刷新令牌?使用refresh token.refresh_token会给出错误。 – tsil 2012-07-23 22:27:48
这不应该是这种情况。什么是“类型(令牌)”?即使您没有刷新令牌,该值也将为“无”。在通过'ae_save'序列化令牌之前,请确保您确实拥有'refresh_token'。除非您指定'approval_prompt = force',否则后续OAuth2请求不会为您提供新的刷新标记。 – bossylobster 2012-07-24 02:08:17