通过 javascript 从 LinkedIn API 获取结果

Fetching results from LinkedIn API through javascript

本文关键字:获取 结果 API LinkedIn javascript 通过      更新时间:2023-09-26

首先感谢您阅读本文。我在使用 javascript 获取LinkedIn登录 API 提供的数据时遇到一些问题。这是脚本:

    <script type="text/javascript">
    function onLinkedInAuth() {
    IN.API.Profile("me").fields(["firstName","lastName","headline","summary","location","educations","skills"]).result(displayProfiles);
    }
function displayProfiles(profiles) {
     member = profiles.values[0];
     document.getElementById("name").value = member.firstName +" "+ member.lastName;
     document.getElementById("pos").value = member.headline;
     document.getElementById("city").value = member.location.name;
     document.getElementById("sum").value = member.summary;
     var i=0; 
      do {
            var oldHTML = document.getElementById('para').innerHTML;
            var newHTML = oldHTML + "<tr><td>" + member.educations.values[i].schoolName + "</td></tr>";
            document.getElementById('para').innerHTML = newHTML;
        i++;
      }
      while(i<=1);
      var v=0;
      do {
            var oldHTML = document.getElementById('tara').innerHTML;
            var newHTML = oldHTML + "<tr><td>" + member.skills.values[v].skill.name + "</td></tr>";
            document.getElementById('tara').innerHTML = newHTML;
        v++; 
      }
      while(member.skills.values[v].skill.name);
     document.getElementById("educ").value = member.educations.values[1].schoolName;
     document.getElementById("skills").value = member.skills.values[0].skill.name;
}
</script>

这是一个非常基本的脚本,用于获取用户信息,其中包括用户的教育和专业背景。问题是member.educations.values[i].schoolName和member.skills.values[v].skill.name可以有多个值,我想收集它们。

只要指定的字段不为空,它就可以工作,但随后它会输出一个错误,指出 member.skills.values[v] 未定义并且它不会运行第二个循环。

我知道这个错误真的很基本,但我在javascript方面不是那么好。

无论如何,感谢您的帮助,祝你有美好的一天!

您应该检查返回值的长度,然后根据需要遍历它们。大致如下:

var educations = member.educations;
if(educations._total > 0) {
  for(var i = 0; i < educations._total; i++) {
    document.getElementById("educ").value += (i > 0) ? ', ' : '';
    document.getElementById("educ").value += educations.values[i].schoolName;
  }
}