1

Linkedin から接続情報を取得するための作業コードがあります。ただし、場所を取得しようとするたびに、奇妙な結果が得られます。

このコードは機能しますが、場所があるはずの場所に「object OBJECT」が表示されます。

<html lang="en">
<head>
<title>LinkedIn Industries</title>
<script type="text/javascript" src="http://platform.linkedin.com/in.js">
api_key: xxxxxxx
onLoad: onLinkedInLoad
scope: r_network,r_emailaddress,r_fullprofile,r_basicprofile,r_contactinfo

</script>
</head>
<body>




<p>This example demonstrates how to retrieve a user's connections.  It also uses the LinkedIn auth events (load, login, logout) to control behavior.</p>

<!-- NOTE: be sure to set onLoad: onLinkedInLoad -->
<script type="text/javascript">
function onLinkedInLoad() {
  IN.Event.on(IN, "auth", function() {onLinkedInLogin();});
  IN.Event.on(IN, "logout", function() {onLinkedInLogout();});
}


function onLinkedInLogout() {
  setConnections({}, {total:0});
}

function onLinkedInLogin() {
  // here, we pass the fields as individual string parameters
  IN.API.Connections("me")
    .fields("id", "firstName", "lastName", "pictureUrl", "publicProfileUrl","location:(name)")
    .result(function(result, metadata) {
      setConnections(result.values, metadata);
    });
}

function setConnections(connections) {
  var connHTML = "<ul>";
  for (id in connections) {
    connHTML = connHTML + "<li><a href=\"" + connections[id].publicProfileURL + "\">";

    /* picture url not always there, must be defensive */
    if (connections[id].hasOwnProperty('pictureUrl')) {
      connHTML = connHTML + "<img align=\"baseline\" src=\"" + connections[id].pictureUrl + "\"></a>";
    }  else {
      connHTML = connHTML + "<img align=\"baseline\" src=\"http://static02.linkedin.com/scds/common/u/img/icon/icon_no_photo_80x80.png\"></a>";
    }

    connHTML = connHTML + "&nbsp;<a href=\"" + connections[id].publicProfileUrl + "\">";
    connHTML = connHTML + connections[id].firstName + " " + connections[id].lastName + "</a>";
    connHTML = connHTML + " (Location: " + connections[id].location + ")</li>";
  }

  connHTML = connHTML + "</ul>";
  document.getElementById("connectionsdata").innerHTML = connHTML;
}
</script>
<script type="IN/Login">
<div id="connectionstest">
  <p>Current User's Connections:</p>
  <div id="connectionsdata"></div>
</div>
</script>
</body>
</html>

主な問題は場所に実際に存在します。ドキュメントでは、これを location.name に置き換える必要がありますが、これを行うたびに何も返されませんが、json を含む XHR 応答があることがわかります。

location:{"名前":"ダブリンなど"}

隠された場所の謎を解くのを手伝ってください

編集: 2013 年 5 月 23 日 - Chrome の開発者ツールで、(Uncaught TypeError: Undefined のプロパティ 'name' を読み取れません - これが誰かの助けになることを願っています) というメッセージが表示されます

Chrome 開発者のコ​​ンソールを見ると、上記のキャッチされていない型エラーの詳細があります: Uncaught TypeError: Cannot read property 'name' of undefinedlinkedconnect.html:55

setConnectionslinkedconnect.html:55

(無名関数) linkedconnect.html:36 Sslac.Class.Constructor.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.bフレームワーク:3242

(無名関数) フレームワーク:173

Sslac.Class.Constructor.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.Method.storedFailureResults フレームワーク: 3247

(無名関数) フレームワーク:173

g フレームワーク:3135

pub.incoming フレームワーク:801

_window_onMessage フレームワーク:566

4

2 に答える 2

1

おそらく、コード設定 html を接続配列に実際に含まれているもののログに一時的に置き換えることができます。

//connHTML = connHTML + "&nbsp;<a href=\"" + connections[id].publicProfileUrl + "\">";
//connHTML = connHTML + connections[id].firstName + " " + connections[id].lastName + "</a>";
//connHTML = connHTML + " (Location: " + connections[id].location + ")</li>";
console.log(connections[id]);

オブジェクトをログに記録すると、そのオブジェクトをクリックしてそのプロパティを調べることができます。おそらく、一部の項目には単に場所が含まれていません。その場合は、次を試すことができます。

function setConnections(connections) {
  var connHTML = "<ul>",
  tmpLocation;
  .....
  tmpLocation= (connections[id].location && connections[id].location.name)
    ?connections[id].location.name:"Unknown";
  connHTML = connHTML + " (Location: " + tmpLocation + ")</li>";
于 2013-05-23T09:35:13.153 に答える