通过Oath2从LinkedIn获得访问令牌后,如何获取用户个人资料数据

时间:2018-12-03 08:41:13

标签: javascript node.js oauth-2.0 linkedin-api

我有一个小型节点应用程序,该应用程序在通过Oath2进行身份验证(授权)后正在从LinkedIn检索访问令牌。

现在,我有了令牌,我想发出后续请求以获取用户个人资料数据。问题是当我发出请求时,错误提示如下:

{"success":false,"msg":"403 - {\"serviceErrorCode\":100,\"message\":\"Not enough permissions to access: GET /me\",\"status\":403}"}

我已经在LinkedIn应用程序中选中了所有“状态”选项。

enter image description here

根据LinkedIn API文档,令牌需要在标头中发送。像这样:

enter image description here

(参考:https://developer.linkedin.com/docs/oauth2#requests

获取配置文件数据的途径如下: https://api.linkedin.com/v2/me

enter image description here

这是我希望用户点击以获取其个人资料的路线:

app.get("/user",async (req,res)=>{

    console.log(token); /* token object is available in higher scope from previous request */

     var options = {

        url: "https://api.linkedin.com/v2/me",
        method: 'GET',
        headers: {
          'Host': "api.linkedin.com",
          'Connection': "Keep-Alive",
          'Authorization': 'Bearer ' + token.access_token
        },

        json: true // Automatically stringifies the body to JSON
    };




    try {
        var response = await makeRequest(options);
        return res.json({success:true})

        } catch (err) {

        return res.json({ success: false, msg: err.message});; // TypeError: failed to fetch
    }



});

1 个答案:

答案 0 :(得分:1)

尝试在Bearer一词后添加一个空格。目前,它会将您的令牌和Bearer一词视为单个字符串,并且不知道从何处拆分以获取令牌

'Authorization': 'Bearer ' + token.access_token