我正在尝试使用LinkedIn Javascript SDK来检索包括位置字段在内的一些信息。我从互联网上复制了代码,但似乎有些东西不能正常工作,因为我复制的代码不会返回应该是的位置字段。我试过ApiGee它工作正常,它返回了我所期望的位置列表。如果你看下面的代码,你认为我错过了什么或者javascript SDK本身有一些错误的问题吗?
<script type="text/javascript" src="//platform.linkedin.com/in.js">
api_key: yourapikey
authorize: true
onLoad: onLoad
</script>
<script type="text/javascript">
function onLoad() {
IN.Event.on(IN, "auth", getProfileData);
}
// Handle the successful return from the API call
function onSuccess(data) {
alert(JSON.stringify(data));
}
// Handle an error response from the API call
function onError(error) {
console.log(error);
}
// Use the API call wrapper to share content on LinkedIn
function getProfileData() {
//alert(IN.ENV.auth.oauth_token);
IN.API.Raw("/people/~:(id,positions)?format=json").result(onSuccess).error(onError);
}
</script>
返回结果显示:
{"id":"wQplQQjzLa","positions":{"_total":0}}
答案 0 :(得分:1)
你好@John Hadikusumo, 好吧,我明白这个答复将在一年之后才会发生,但是,我也面临着一些与send api集成有关的问题,特别是当它来到&#34;职位&#34;对象值。
显然,当我收到错误时,其意思是使用他的linkedin个人资料进行授权的用户,该特定用户尚未发布他的体验详情,因此没有任何价值;
为了规避这个特殊问题,我所做的就是帮助了我:
function onLinkedInLoad() {
IN.Event.on(IN, "auth", getProfileData);
}
function onSuccess(data) {
console.log(data);
}
function onError(error) {
console.log(error);
}
function getProfileData(){
IN.API.Profile("me").fields(["firstName","lastName", "email-address", "positions"]).result(function(data) {
var profileData = data.values[0];
var profileFName = profileData.firstName;
var profileLName = profileData.lastName;
//this is the piece of code that helped me out;
//might work for you as well;
if(data.values[0].positions._total == "0" || data.values[0].positions._total == 0 || data.values[0].positions._total == undefined) {
console.log("Error on position details");
var profileCName = "Details Are Undefined";
}
else {
var profileCName = profileData.positions.values["0"].company.name;
}
var profileEName = profileData.emailAddress;
//and other logic/code continues...
});
}
所以我希望这会帮助你。如果您遇到任何其他错误,请告诉我,如果我需要改进现有代码,我可以使用一些帮助。
干杯,祝你有个美好的一天。