当前位置: 动力学知识库 > 问答 > 编程问答 >

python - Twitter oauth with flask_oauthlib, Failed to generate request token

问题描述:

I tried to use flask_oauthlib to access my twitter api, but all I get is the error : Failed to generate request token. Here is the code.

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)

This didn't work while using http://term.ie/oauth/example/client.php, I managed to get a request token.

I inspired myself with https://github.com/lepture/example-oauth1-server/blob/master/client.py and http://flask-oauthlib.readthedocs.io/en/latest/client.html

EDIT

Weird fact : I tried the code here : https://github.com/lepture/flask-oauthlib/blob/master/example/twitter.py

I didn't changed the key and secret and it worked.

So I tried to change them for my own credentials, and it stopped working. I really can't understand...

网友答案:

Ok I found the problem. It appears that the callback URL is mandatory when using flask-oauthlib. So I added a fake one since i'm still on localhost, and it solved this problem.

分享给朋友:
您可能感兴趣的文章:
随机阅读: