【问题标题】:How to retrieve his own LinkedIN profile data by an API如何通过 API 检索他自己的 LinkedIN 个人资料数据
【发布时间】:2020-07-10 18:00:21
【问题描述】:

我想测试简单的 LinkedIN api 功能,例如从linkedIn 或我的任何帖子中获取我的个人资料数据... 但是,我有一个问题,似乎您必须先创建一个“应用程序”之类的东西,然后参考您的公司简介,但是,我目前没有特定的公司简介,我也无法授予访问权限为自己去那家公司。 在试用 API 之前,还有其他方法吗?或者您是否必须拥有一家公司?

我看不出还有其他方法可以获取您的个人资料 ID,或者从 linkedIn 获取访问令牌/api 令牌之类的东西……有什么想法吗?

【问题讨论】:

    标签: api authentication linkedin access-token profile


    【解决方案1】:

    正如你所说,你想要任何其他方式来获取 linkedin API auth 或 access token,因此没有其他方法可以获取 API

    但您可以在不使用任何 API 的情况下获取或检索用户自己的数据,您可以使用 JavaScript 自定义 LinkedIn 的个人资料徽章

    这是一个使用 javascript 的示例,

    在这个代码块中,我们使用Linkedin's Profile Badge 来检索用户的数据,然后在 javascript 的帮助下我正在操作 DOM

    Reference Link
    Live Demo Example

    let lkList = ["devsalmanshaikh"];// replace with user's id that you want to retrive  
    let linkedinid = "";
    let idx = 0;
    let badgeElm = document.getElementById("hideBadgeElm");
    let waitObserver;
    
    getData();
    
    function getData() {
      linkedinid = lkList[idx];
      badgeElm.innerHTML = `<div class="badge-base LI-profile-badge" data-locale="en_US" data-size="medium" data-theme="light" data-type="VERTICAL" data-vanity="${linkedinid}" data-version="v1"><a class="badge-base__link LI-simple-link" href="https://in.linkedin.com/in/${linkedinid}?trk=profile-badge">.</a></div>`;
      loadProfileJs();
    }
    
    function loadProfileJs() {
      var script = document.createElement("script");
      script.onload = function() {
        waitObserver = setInterval(domObserve, 1000);
      };
      script.src = "https://platform.linkedin.com/badges/js/profile.js";
      document.head.appendChild(script);
    }
    
    function domObserve() {
      let state = badgeElm.querySelector(".LI-profile-badge .profile-badge__header");
      if (state) {
        clearInterval(waitObserver);
        console.log(state);
        let json = {
          id: linkedinid,
          img: "#",
          name: "Not available",
          title: "Not available",
          info: "Not available",
        };
    
        if (badgeElm.querySelector("img.profile-badge__content-profile-image")) {
          json.img = badgeElm.querySelector("img.profile-badge__content-profile-image").src;
        }
    
        if (badgeElm.querySelector(".profile-badge__content-profile-name")) {
          json.name = badgeElm.querySelector(".profile-badge__content-profile-name").innerText;
        }
    
        if (badgeElm.querySelector(".profile-badge__content-profile-headline")) {
          json.title = badgeElm.querySelector(".profile-badge__content-profile-headline").innerText;
        }
    
        if (badgeElm.querySelector(".profile-badge__content-profile-company-school-info")) {
          json.info = badgeElm.querySelector(".profile-badge__content-profile-company-school-info").innerText;
        }
    
       
        showData(json);
      }
    }
    
    function showData(json) {
      let tbl = "<table border=1><tbody>";
      for (i in json) tbl += `<tr><td class='col0'>${i}</td><td class='col1'>${json[i]}</td></tr>`;
      output.innerHTML += tbl + "</tbody></table>";
      idx++;
      if (idx < lkList.length) getData();
    }
    <h4>Example of Profile Data Fetch without API using javascript </h4>
    
    <div id="output" style="padding: 12px;"></div>
    
    <div id="hideBadgeElm" style="display: none;"></div>

    【讨论】:

    • 您的答案可以通过添加有关代码的作用以及它如何帮助 OP 的更多信息来改进。
    【解决方案2】:

    根据我使用 Linkedin API 的经验,我认为您必须先创建一个应用程序才能做到这一点。

    Linkedin 使用OAuth2 框架,它可以是 3-legged 或 2-legged,但不会与成员关联的 2-legged 有很多限制,并且它们不允许任何应用程序访问它,无论您需要应用程序。

    3-legged 是 3 方,所以 Linkedin,一个应用程序(公司)和用户(linkedin 用户)。

    创建一个很容易,但不幸的是需要一个公司,你可以做到here

    我已经在使用 LinkedIn API 时遇到了很多困难,我的建议是尝试创建公司资料而不是应用程序。

    Edit1:记录在案的最佳工作流程here

    【讨论】:

    • 好的,我设法用现有的公司资料创建了一个应用程序,并对其进行了验证,我被添加为团队成员,我还获得了 client_id 和 client_secret...但现在我尝试连接到他们的 API v2 与linkedin.com/oauth/v2/… 但得到回复:Error "access_denied" error_description "This application is not allowed to create application tokens" 我错过了什么?我在某处读到需要联系linkedIn 并需要特殊访问权限,但我应该如何联系linkedIN?什么主题?
    • @user2774480 在请求 accessToken 之前,您需要向 linkedin.com/oauth/v2/authorization 发出请求检查我在答案中所做的编辑并按照链接中的工作流程进行操作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    相关资源
    最近更新 更多