[英]Fetching results from LinkedIn API through javascript
首先,感谢您阅读本文。 我在使用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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.