lan*_*ndo 1 oauth-2.0 python-2.7 google-fusion-tables
我正在尝试检索访问和刷新令牌,以便应用程序访问我的融合表.我正在使用OAuth 2.0方法,只需要允许访问我的应用程序的用户将记录插入到我的融合表中.
我遇到的问题是运行时python脚本由谷歌所描述这里.运行开箱即用的代码时遇到的错误(在PyDev中,使用Python 2.7解释器)是:
Traceback (most recent call last):
File "\\..\OAuthToken\root\oauth_tokens.py", line 59, in <module>
redirect_uri)
File "\\..\OAuthToken\root\oauth_tokens.py", line 41, in retrieve_tokens
refresh_token = tokens['refresh_token']
KeyError: 'refresh_token'
Run Code Online (Sandbox Code Playgroud)
有人为我解决了吗?我在GitHub上的某处读取(github.com/ff0000/red-social-auth/issues/3 - 我不能张贴了链接)是与refresh_tokens是半退休状态,但很明显,我只是在抓在这一点上秸秆.
谢谢您的帮助.
所以我遇到了原始问题中所述的相同问题,并且没有提出任何问题.但后来我发现了这一点,指定原始请求需要具有access_type=offline以便发送刷新令牌.所以我把它添加到Kathryn的oauth_tokens脚本中就像这样.
编辑第17行:
print '%s?client_id=%s&redirect_uri=%s&scope=%s&access_type=offline&response_type=code' % \
Run Code Online (Sandbox Code Playgroud)
好吧,我认为这可以解决我的问题,但事实并非如此.我想因为应用程序最初使用默认访问类型"在线"注册,所以它不会授予刷新令牌.通过撤消Google帐户设置页面下的应用程序访问权限解决了这个问题.
帐户 - >安全 - >授权应用程序和站点 - >编辑
我希望这可以帮助别人,因为这让我疯了一会儿.
我在Github上添加了我正在使用的脚本:https://github.com/mejackreed/fusion-tables-oauth-tokens/blob/master/oauth.py
| 归档时间: |
|
| 查看次数: |
799 次 |
| 最近记录: |