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 есть много встроенных социальных связей.

Другие вопросы по тегам