当前位置: 首页 > 知识库问答 >
问题:

带有flask_oauthlib的Twitter oauth无法生成请求令牌

贝凯
2023-03-14

我试图使用flask_oauthlib访问我的twitter api,但我得到的只是错误:未能生成请求令牌。这是密码。

    from flask_oauthlib.client import OAuth
    from flask import Flask, url_for, request, jsonify

    app = Flask(__name__)
    oauth = OAuth()

    twitter = oauth.remote_app(
        'twitter',
        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='im not telling you',
    )


    @app.route('/login')
    def login():
        return twitter.authorize(callback=url_for('authorized',
                                                  next=request.args.get('next') or request.referrer or None))


    @app.route('/authorized')
    @twitter.authorized_handler
    def authorized(resp):
        if resp is None:
            return 'Access denied: error=%s' % (
                request.args['error']
            )
        if 'oauth_token' in resp:
            # session['example_oauth'] = resp
            print(resp)
            return jsonify(resp)
        return str(resp)


    if __name__ == '__main__':
        app.run(port=8000, debug=True)

这在使用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个答案

赵光赫
2023-03-14

好的,我找到问题了。在使用flask-oauthlib时,回调URL似乎是必需的。所以我添加了一个假的,因为我仍然在localhost上,它解决了这个问题。

 类似资料:
  • 问题内容: 我想构造与OPENROWSET方法一起使用的查询。 例子: 但是当我这样做时,我得到了错误: ’+’附近的语法不正确 如何建立查询?谢 问题答案: 尽管in中的查询被指定为字符串,并且通过这种方式看起来非常像动态查询,但是语法不允许将其以同样的方式构造成一部分。 恐怕,您将必须构建一个动态查询,该查询将调用,如下所示:

  • 我试图测试我正在构建的一个关于JWT的软件的功能,以了解它,它使用Firebase JWT PHP包 我正在尝试创建一个使用密钥对作为编码/解码的测试用例,但无法获得http://jwt.io页面以使用我的密钥创建令牌。 这些是我使用命令创建的密钥,没有任何修改。 我转到页面,选择HS256/384/512并删除页面默认设置的键。然后我粘贴我的私钥以便对我的数据进行签名。但是,该页面不会生成任何J

  • 我已将OAuth2 Passport安装到我的Laravel项目中。我正在使用postman进行测试,我可以创建新用户,我可以登录(生成令牌)和注销。登录后,我尝试向APIendpoint发出请求,但在这里,我被卡住了,因为无论我在postman

  • 问题内容: 我尝试了python 请求库文档中提供的示例。 使用,我得到了响应代码,但是我想获得所请求的每个页面的内容。例如,这不起作用: 问题答案: 注意 下面的答案是不适用于请求v0.13.0 +。编写此问题后,异步功能已移至。但是,你可以将其替换为下面的内容,它应该可以工作。 我已经留下了这个答案,以反映原始问题,即有关使用请求的问题。 要异步执行多个任务,你必须: 为每个对象定义一个函数(

  • 问题内容: 我正在尝试在Elasticsearch上执行简单的“请求正文搜索”,如以下示例所示,但使用.NET而不是curl 下面是我的.NET代码。 但是,我收到以下错误。 有什么方法可以使用标准.NET类发送带有请求的内容主体。还是有解决方法? 问题答案: 将更改为解决方法。 MSDN声明,如果使用or 方法调用该方法,则将引发a 。

  • 我有一个枚举类来存储一些像这样的分类值。 每种类型都有pydantic模型。例如: 我有这样的字典: 我有一个FastAPI路由,用户需要输入字段类型名称作为字符串(从FastAPI文档中的下拉列表),并根据选择的类型提供类型属性。如果用户选择type=“images”,则会提供相应的pydantic模型“ImageModel”供用户填写,以此类推。 选择类型名称后,有没有办法产生对应的pydan