Twitter oauth with flask_oauthlib,无法生成请求令牌

Posted

技术标签:

【中文标题】Twitter oauth with flask_oauthlib,无法生成请求令牌【英文标题】:Twitter oauth with flask_oauthlib, Failed to generate request token 【发布时间】:2016-10-23 09:21:43 【问题描述】:

我尝试使用 flask_oauthlib 访问我的 twitter api,但我得到的只是错误:无法生成请求令牌。这是代码。

从 flask_oauthlib.client 导入 OAuth 从烧瓶进口烧瓶,url_for,请求,jsonify app = Flask(__name__) oauth = OAuth() 推特 = oauth.remote_app( '推特', base_url='https://api.twitter.com/1/', request_token_url='https://api.twitter.com/oauth/request_token', access_token_url='https://api.twitter.com/oauth/access_token', authorize_url='https://api.twitter.com/oauth/authorize', consumer_key='dOJjyxB6gxXWTjdtfPUZcZPjl', consumer_secret='我没有告诉你', ) @app.route('/登录') 定义登录(): return twitter.authorize(callback=url_for('authorized', next=request.args.get('next') 或 request.referrer 或 None)) @app.route('/授权') @twitter.authorized_handler def 授权(resp): 如果响应为无: return '拒绝访问:错误=%s' % ( request.args['错误'] ) 如果“oauth_token”分别为: # session['example_oauth'] = resp 打印(响应) 返回 jsonify(resp) 返回 str(resp) 如果 __name__ == '__main__': app.run(端口=8000,调试=真)

这在使用http://term.ie/oauth/example/client.php 时不起作用,我设法获得了一个请求令牌。

我用https://github.com/lepture/example-oauth1-server/blob/master/client.py 和http://flask-oauthlib.readthedocs.io/en/latest/client.html 启发了自己

编辑

奇怪的事实:我在这里尝试了代码:https://github.com/lepture/flask-oauthlib/blob/master/example/twitter.py 我没有更改密钥和秘密,它起作用了。

所以我尝试将它们更改为我自己的凭据,但它停止了工作。实在看不懂……

【问题讨论】:

【参考方案1】:

好的,我发现了问题。使用 flask-oauthlib 时,回调 URL 似乎是强制性的。所以我加了一个假的,因为我还在本地主机上,它解决了这个问题。

【讨论】:

感谢您分享您的经验 :)【参考方案2】:

万一有人发现了这个问题。我是 Flask-OAuthlib 的作者。我建议您改用Authlib,浏览https://github.com/lepture/authlib 的源代码。 https://github.com/authlib/loginpass 中有许多内置的社交关系。

【讨论】:

以上是关于Twitter oauth with flask_oauthlib,无法生成请求令牌的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 twitter oauth 访问令牌无效/过期

Flask 易错点

在 Twitter 上验证 OAuth 令牌

Oauth - Facebook/Twitter/Foursquare

带有node.js的Twitter应用OAuth

使用 oauth 和 twitter ruby​​ gem 时不断收到 OAuth::Unauthorized 错误