如何使用Flask oauthlib从LinkedIn获取电子邮件地址



[EDIT]只是为了防止你读到这篇文章:我自己已经找到了答案,并在下面发布了答案。:)

我正在使用(优秀的)Python-Flask框架构建一个网站,现在我正在构建与LinkedIn的集成。为此,我使用了我在这里找到的示例,该示例通过返回r_basicprofile数据来工作。

我现在想从linkedin返回更多信息,所以我将scope'r_basicprofile'更改为'r_emailaddress'。它正确地转到LinkedIn,(除了基本的个人资料信息)它还正确地要求访问电子邮件地址。在输入用户名和密码后,我只会在json中返回基本配置文件。从示例代码中,我唯一不理解的部分是第54行,它从LinkedIn获得了实际信息。功能如下:

@app.route('/login/authorized')
def authorized():
    resp = linkedin.authorized_response()
    if resp is None:
        return 'Access denied: reason=%s error=%s' % (
            request.args['error_reason'],
            request.args['error_description']
        )
    session['linkedin_token'] = (resp['access_token'], '')
    me = linkedin.get('people/~')  # <== HOW can I get this line to return the email address?
    return jsonify(me.data)

当前返回的json如下:

{
  "firstName": "MyFirstName", 
  "headline": "Developer", 
  "lastName": "MyLastName", 
  "siteStandardProfileRequest": {
    "url": "https://www.linkedin.com/profile/view?id=12345678&authType=name&authToken=XXXXXXXXX=api*a1234567*s1234567*"
  }
}

有人知道在正确授权我的应用程序获取电子邮件地址后,我如何才能真正获得电子邮件地址吗?

欢迎所有提示!

永不终止!我已经找到了!

我需要使用以下来获取电子邮件地址:

emailAddress = linkedInApp.get('people/~/email-address')
print emailAddress.data

下次我会在发布之前多读一点。无论如何,感谢您的关注!

ps:我只能在两天后接受我自己的答案。所以,如果你来问这个问题是因为你还没有看到被接受的答案,请原谅。如果其他人可以复制粘贴我的答案,我很乐意接受他们的答案,这样这个问题就可以从忘记的问题列表中删除。:)

最新更新