【发布时间】:2019-09-18 09:25:13
【问题描述】:
我正在尝试在我的 Web 应用程序上使用 facebook 登录。 但是,我不断收到此错误消息:
return self.view_functions[rule.endpoint](**req.view_args).
File "/vagrant/itemcat2/application.py",
line 230, in fbconnect
login_session['username'] = data["name"]
KeyError: 'name'
为什么说数据名是key错误,不存在? 我该如何解决?
以下是错误消息指向的代码:
url = 'https://graph.facebook.com/v2.8/me?access_token=%s&fields=name,id,email' % 令牌
h = httplib2.Http()
result = h.request(url, 'GET')[1]
data = json.loads(result)
login_session['provider'] = 'facebook'
login_session['username'] = data["name"]
login_session['email'] = data["email"]
login_session['facebook_id'] = data["id"]
# Store token in login_session in order to logout
stored_token = token.split("=")[1]
login_session['access_token'] = stored_token
【问题讨论】:
-
您尝试访问哪个 api 节点?,返回的数据似乎不包含“名称”作为键。也许您可以尝试将数据打印为 json 字符串并检查其中的键
-
facebook登录api。
-
这个已经解决了,我可以发现我的token没有很好的拆分。下面的代码,解决了问题 token = result.split(',')[0].split(':')[1].replace('"', '')
标签: python json python-2.7 facebook-graph-api oauth-2.0