Как исправить ошибку «AttributeError: у объекта« OAuth2ConsumerBlueprint »нет атрибута« get »» - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь создать приложение, которое связывает API Basecamp. Я использую флягу-танец при условии заказного проекта. https://flask -dance.readthedocs.io / ен / последний / providers.html # модуль-flask_dance.contrib.facebook

Я пытаюсь перенаправить мое приложение на страницу входа в basecamp, но в нем говорится об этой ошибке: AttributeError: у объекта 'OAuth2ConsumerBlueprint' нет атрибута 'get'

Как исправить эту ошибку?

    from flask import Flask, url_for, request, jsonify, session, redirect
    from flask_dance.consumer import OAuth2ConsumerBlueprint
    from flask_oauthlib.client import OAuth

    app = Flask(__name__)
    oauth = OAuth()
    basecamp = OAuth2ConsumerBlueprint(
        "basecamp", __name__,
        client_id="",
        client_secret="",
        base_url="",
        token_url="https://launchpad.37signals.com/authorization/token",
        authorization_url='https://launchpad.37signals.com/authorization/new?type=web_server',
        )
        app.register_blueprint(basecamp, url_prefix='/basecamp_login')


        @app.route('/basecamp')
        def basecamp_login():
            if not basecamp.authorized:
                return redirect(url_for('basecamp.base_url'))
            account_info = basecamp.get('/email_address')

            if account_info.ok:
                account_info_json = account_info.json()
                return '<h1>Your basecamp email address is{}'.format()

        if __name__ == '__main__':

            app.run(debug=True)

1 Ответ

0 голосов
/ 16 июля 2019

Как указано в документации для пользовательских провайдеров Flask-Dance , вам нужно обратиться к атрибуту session в чертеже, чтобы сделать HTTP-запросы.В вашем случае basecamp.get('/email_address') неверно, потому что basecamp является объектом OAuth2ConsumerBlueprint.Вы должны позвонить basecamp.session.get('/email_address') вместо.

...