python - Linkedin API 在 Django 2.0 中不返回电子邮件地址
问题描述
这是测试代码:
第 1 步:请求验证码
args_str = urlencode({
'response_type' : 'code',
'client_id' : '<app client id>',
'scope' : 'r_emailaddress r_basicprofile',
'state' : '<my state id>',
'redirect_uri' : '<app redirect url>'
})
url = 'https://www.linkedin.com/oauth/v2/authorization'
return redirect(url + '?' + args_str)
步骤#2处理回调
步骤#3 获取访问令牌
步骤#4使用访问令牌从linkedin 获取数据
def get_linkedin_data(request, access_token):
api_endpoint_profile = 'https://api.linkedin.com/v1/people/~'
access_token = access_token
headers = {}
headers['Authorization'] = 'Bearer ' + access_token
headers['User-Agent'] = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0'
headers['x-li-format'] = 'json'
values = {
'format' : 'json'
}
data = urllib.parse.urlencode(values)
data = data.encode('ascii')
url_request = urllib.request.Request(api_endpoint_profile, data=data, headers=headers, method='GET')
url_response = urllib.request.urlopen(url_request)
response_data_profile = json.loads(url_response.read().decode('utf-8'))
response_data_profile 变量仅包含基本配置文件数据,但不包含电子邮件地址。
我在这里想念什么?
笔记:
在 Linkedin 开发者帐户中创建的应用程序已选择 r_basicprofile 和 r_emailaddress 范围
当 api 尝试获取链接数据时,授予范围 basicprofile 和 emailaddress 的权限
解决方案
推荐阅读
- javascript - 如何为角度 10 中的重复字段集构建或构建表单?
- ios - 如何正确注册GestureConflictWithZoom()?
- javascript - 在 Django 项目中,通过 JavaScript 进行样式设置不起作用
- spring-boot - 如何在 Java Spring boot 中将 MultipartFile 照片作为 Base64 字符串插入 DB 并将其从 db 显示在主屏幕上
- javascript - react js中基于表单的行动计划
- unity3d - 我的角色在滑动,不播放动画(Unity3d、Animator、Blend Tree、Animation)
- visual-studio-code - 使用 Chocolatey 安装主题套件(主题版本主题:无法识别术语“主题”)
- python - 直接使用python将图像从链接保存到ftp服务器是否可行
- react-native - 我可以将道具传递给
React Native 中的组件? - javascript - 如何将javascript异步函数的返回值传递给python变量