2015-10-30 4 views
0

Я пытаюсь использовать SDK LinkedIn Javascript для получения некоторой информации, включая поля позиций. Я скопировал код из Интернета, но кажется, что что-то не работает совершенно правильно, потому что код, который я скопировал, не возвращает поля позиций, как предполагалось. Я пробовал ApiGee, он работал нормально, и он вернул список позиций, как и ожидалось. Если вы посмотрите на код ниже, вы думаете, что я что-то пропустил, или у самого SDK javascript есть некоторые проблемы с ошибкой?LinkedIn Javascript SDK Fail To Return Positions

<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

Я думаю, что это просто опечатка. У вас есть пробел в вашем URL-адресе, прямо в '/ people/...', удалите это пространство и он должен работать. – 1cgonza

+0

Я удаляю пробел, но все равно возвращаю тот же результат. –

+0

У меня был код: http: //test.dirtoilgas.com/index.html –

ответ

1

Привет @John Hadikusumo, Ну, я понимаю, что этот ответ будет происходить только через год, но я тоже столкнулась с некоторыми проблемами с интеграцией linkedin api, особенно когда речь идет о значениях объектов «позиции».

По-видимому, когда я получил сообщение об ошибке, это означало, что пользователь, который использует свой профиль 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... 
    }); 
} 

Так что я надеюсь, что это помогает вам. Дайте мне знать, если вы столкнулись с любыми другими ошибками, я мог бы использовать некоторую помощь, если мне понадобится улучшить существующий код.

Cheers and Have nice day.