2016-06-20 28 views
0

Javascript APIを使用して、linkedinユーザーの完全なプロファイル(特に職歴と教育資格)を取得しようとしています。私はGoogleと、スタックオーバーフローから次のコードをつなぎ合わせるために管理している:Javascript API経由でlinkedinユーザーのフルプロファイルを取得する方法

<html> 
<head> 
<title>Test</title> 
<script type="text/javascript" src="http://platform.linkedin.com/in.js"> 
    api_key: blahblahblah 
    onLoad: onLinkedInLoad 
    authorize: true 
</script> 

<script type="text/javascript"> 
function onLinkedInLoad() { 
    IN.Event.on(IN, "auth", onLinkedInAuth); 
} 
function onLinkedInAuth() { 
    IN.API.Profile("me").result(displayProfiles); 
    // IN.API.Profile("me").fields(["industry", "network", "date-of-birth", "educations:(id,school-name)"]).result(displayProfiles); 
} 
function displayProfiles(profiles) { 
    member = profiles.values[0]; 
    document.getElementById("profiles").innerHTML = 
    "<p id=\"" + member.id + "\">Hello " + member.firstName + " " + member.lastName + "</p>"; 

    for(education in profiles.educations) { 
     var id = education.id; 
     var name = education.schoolName; 
     console.log(name); 
    } 
} 
</script> 
</head> 
<body> 
<script type="IN/Login"></script> 
<div id="profiles"></div> 
</body> 
</html> 

これは、彼らがアクセス権を付与した後、ユーザーの名前と姓にログイン取得するために管理しています。しかし、それは他の何かを完全に検索することができません。私はlinkedinの会社ログインを使用しており、残りのAPIを介してすべてのユーザーの情報にアクセスできます。アクセスに関する問題ではありません。私はJavascript APIの使い方を知りません(例は見つかりません)。取得する情報を指定する方法と、返されるJSONオブジェクトの情報をどのように特定するのですか?

答えて

2

コメントアウトした電話のバリエーションを使用して私の最終的な作業をしているようです: fieldsを確認してください。そこには「ネットワーク」がありますが、リストされていません。おそらくそれはAPIの古いバージョンの一部でしたか?

function onLinkedInAuth() { 
    // IN.API.Profile('me').result(displayProfiles); 
    IN.API.Profile('me').fields([ 
    'first-name', 'last-name', // Add these to get the name 
    'industry', 'date-of-birth', 'educations:(id,school-name)', 
    'positions' // Add this one to get the job history 
    ]) 
    .result(displayProfiles); 
} 

その後、あなたはこのような返されたデータを扱うことができます:

function displayProfiles(profiles) { 
    var member = profiles.values[0]; 

    // Note that these values are arrays and not objects 
    var educations = member.educations.values; 
    var positions = member.positions.values; 

    document.getElementById('profiles').innerHTML = 
    '<p id="' + member.id + '">Hello ' + member.firstName + ' ' + member.lastName + '</p>'; 

    educations.forEach(function(edu) { 
    var id = edu.id; 
    var name = edu.schoolName; 
    console.log(id, name); 
    }); 

    positions.forEach(function(position) { 
    // Do some work with each position... 
    }); 
} 
+0

は私にはTypeErrorを与える:member.educationsは、それは一種の働く位置については未定義 – Superdooperhero

+0

ですが、それだけで現在の位置を返します。すべてのポジションではありません。 – Superdooperhero

+0

あなたのアプリのようなサウンドは、[r_basicprofile](https://developer.linkedin.com/docs/fields/basic-profile)のアクセス許可にのみ設定されています。リンクされた開発者の[app page](https://www.linkedin.com/developer/apps/)に移動し、あなたの "r_fullprofile"ボックスがチェクされていることを確認してください。 – 1cgonza

関連する問題