0

我正在使用 Flask-Dance 让用户使用谷歌登录。但是当我走到下面的路线时,它告诉我:'function'对象没有属性'get'。我做错了什么?

如果我写“如果不是 google.authorized”,它也会引发错误。

from flask_dance.contrib.google import make_google_blueprint, google
app.register_blueprint(google_blueprint, url_prefix='/login')

google_blueprint = make_google_blueprint(client_id='client_id', client_secret='client_secret')

@app.route('/google')
def google():
   if not google_blueprint.authorized:
      return redirect(url_for('google.login'))
   account_info = google.get("/plus/v1/people/me")
   assert account_info.ok, account_info.text
   return "You are {email} on Google".format(email=resp.json()["emails"][0]["value"])
4

2 回答 2

0

google在第 1 行导入,但稍后在第 7 行定义了一个函数google,该函数从导入中覆盖对象并基本上隐藏它,因此该行account_info = google.get("/plus/v1/people/me")试图在您的函数上调用 get 而不是google您导入的模块。

将您的函数重命名为其他名称,例如google_endpoint,它将起作用。

于 2020-06-10T09:30:03.000 回答
0

更改函数的名称

从 flask_dance.contrib.google 导入 make_google_blueprint,谷歌

定义谷():

于 2020-06-10T09:30:42.193 回答