Linkedin API在Django 2.0中不返回电子邮件地址

时间:2018-07-21 09:50:59

标签: python django api linkedin

这是测试代码:

步骤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变量仅包含基本配置文件数据,但不包含电子邮件地址。

我在这里想念什么?

注意:

  1. 在Linkedin开发人员帐户中创建的应用,并选择了r_basicprofile和r_emailaddress范围

  2. 在api尝试获取链接数据时授予范围basicprofile和emailaddress的权限

0 个答案:

没有答案