我创建了一个需要Google作用域的应用程序,并且该应用程序一直运行到现在。我收到此错误:
Error
ERROR:Scope has changed from "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://mail.google.com" to "https://mail.google.com/ https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile".
"https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
https://mail.google.com"
"https://mail.google.com/
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile"
据我所知,范围没有改变。前后有3个作用域,但只有顺序已更改。
用于此的python代码在这里:
try:
credentials = oauth.fetch_token('https://accounts.google.com/o/oauth2/token',
authorization_response = full_authorization_response_url,
client_secret=client_secret)
except Exception as e:
import traceback
print(traceback.format_exc())
credentials = 'ERROR:'+str(e)
if type(credentials) in (str,unicode):
return "Error<br>"+credentials
这似乎是最后一行。 google表示范围已更改,但由于范围未更改,因此我看不到原因或解决方法。
答案 0 :(得分:1)
我发现放宽服务器上的令牌范围可以解决此问题。显然,它期望以相同的顺序具有相同的作用域,除非您添加以下行:
os.environ['OAUTHLIB_RELAX_TOKEN_SCOPE'] = '1'