Twitter oauth with flask_oauthlib, не удалось сгенерировать токен запроса
Я пытался использовать flask_oauthlib для доступа к моему твиттер-интерфейсу, но все, что я получаю, это ошибка: не удалось сгенерировать токен запроса. Вот код
из flask_oauthlib.client import OAuth из колбы импорт колба, url_for, запрос, jsonify app = Flask(__name__) oauth = OAuth() twitter = 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', потребитель_секрет = 'я не говорю тебе',) @ App.route('/ Войти') def login(): вернуть twitter.authorize(callback=url_for("авторизованный", next=request.args.get('next') или request.referrer или None)) @ App.route('/ авторизированных) @twitter.authorized_handler разрешено (соответственно): если нет, то: return 'Доступ запрещен: ошибка =%s' % ( request.args['ошибка']) если 'oauth_token' в респ: # session['example_oauth'] = соответственно печать (соответственно) вернуть jsonify(соответственно) возврат str(соответственно) если __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 Я не менял ключ и секрет, и он работал.
Поэтому я попытался изменить их для своих учетных данных, и это перестало работать. Я действительно не могу понять...
2 ответа
Хорошо, я нашел проблему. Похоже, что URL-адрес обратного вызова является обязательным при использовании flask-oauthlib. Так что я добавил поддельный, так как я все еще на локальном хосте, и это решило эту проблему.
На случай, если кто-нибудь обнаружит эту проблему. Я автор Flask-OAuthlib. Я предлагаю вместо этого использовать Authlib, просмотрите исходный код браузера по адресу https://github.com/lepture/authlib. В https://github.com/authlib/loginpass есть много встроенных социальных связей.