gpt4 book ai didi

python - Flask-OAuthlib "TypeError: sequence index must be integer, not ' str'”

转载 作者:行者123 更新时间:2023-11-28 17:43:17 26 4
gpt4 key购买 nike

我正在使用 Flask-OAuthlib 设置 OAuth2 服务器。当我通过 client.py 脚本访问服务器时出现错误:

TypeError: sequence index must be integer, not 'str'

显然,resp 变量似乎有问题,打印它会导致“来自远程的无效响应”,这不是很有帮助。

这里是 my client code 的相关部分:

@app.route('/authorized')
@remote.authorized_handler
def authorized(resp):
if resp is None:
return 'Access denied: reason=%s error=%s' % (
request.args['error_reason'],
request.args['error_description']
)

session['remote_oauth'] = (resp['access_token'], '') # error occurs here
return jsonify(oauth_token=resp['access_token']) # and here

我意识到有一个 Unresolved 问题(实际上是 2 个,对于同一个问题)但是作者正在“休假”......谁知道要多长时间

最佳答案

在这种情况下,响应是 flask_oauthlib.client.OAuthException(RuntimeError) 而不是 token 请求成功时您会得到的字典。错误消息肯定会更有帮助,我相信拉取请求会被接受 ( good starting point )。

我没有尝试使用 flask-oauthlib 提供程序复制它,只是使用您的示例代码对 Google 进行了快速测试,但两种情况下的原因可能相同。 flask-oauthlib.client 假定 token 检索是 GET 请求,而 flask-oauthlib 和 Google 默认都假定为 POST。

尝试将 access_token_method='POST' 添加到您的 remote_app 调用

remote = oauth.remote_app(
...
authorize_url='http://127.0.0.1:5000/oauth/authorize',
access_token_method='POST'
)

看看是否有帮助。

关于python - Flask-OAuthlib "TypeError: sequence index must be integer, not ' str'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21638355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com