【问题标题】:How to get user profile data after getting access token from LinkedIn via Oath2通过 Oauth2 从 LinkedIn 获取访问令牌后如何获取用户个人资料数据
【发布时间】:2023-03-29 14:01:01
【问题描述】:

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

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

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

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

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

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

获取profile数据的路径如下: https://api.linkedin.com/v2/me

这是我希望用户获取他们的个人资料数据的途径:

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
    }



});

【问题讨论】:

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


    【解决方案1】:

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

    'Authorization': 'Bearer ' + token.access_token

    【讨论】:

    • 这实际上修复了它的一部分,但我现在遇到了另一个错误。我将使用新的错误和代码修复来更新帖子。谢谢
    • stackoverflow.com/questions/46149484/… 似乎这可能有您正在寻找的答案。但可能不是你想听到的,似乎他们已经切断了部分 api。
    • 我以为我回复了您的最后一条评论,但我想没有。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    相关资源
    最近更新 更多