图谱API嵌套请求响应

时间:2016-02-07 18:37:57

标签: javascript facebook-graph-api

我试着整天寻找解决方案,但我不能让你成为我最后的希望! 我使用FB.api作为嵌套请求,我得到了响应(已经检查了console.log,响应没问题)。问题在于,当我试图访问响应的数据时,我得到了未定义的错误,例如响应是空的。 功能。当我试图获得例如响应长度时,我什么也得不到。有任何想法吗?这是我从console.log获得的错误 未捕获的TypeError:无法读取属性' length'未定义的

FB.api(
  '/me',
  'GET',
  {"fields":"likes.limit(100) {link,picture}"},
  function(response) {
if (response == "undefined" || response == null || !response || response.error)
    {
        alert("error occured");
        return;
    }
    console.log(response);
  for (var l = response.data.length, i = 0; i < l; i++) {
}});

部分回复

 {
  "likes": {
    "data": [
      {
        "link": "https://www.facebook.com/G-Pappas-1881854208706899/",
        "picture": {
          "data": {
            "is_silhouette": false,
            "url": "https://scontent.xx.fbcdn.net/hprofile-xlp1/v/t1.0-1/p50x50/1909968_1936509979907988_8060180335068327040_n.jpg?oh=368e10a9ab58ad0f337647ec6187f204&oe=5723AD5D"
          }
        },
        "id": "1881854208706899"
      },
      {
        "link": "https://www.facebook.com/FOODMATES-112425739139239/",
        "picture": {
          "data": {
            "is_silhouette": false,
            "url": "https://scontent.xx.fbcdn.net/hprofile-xpt1/v/t1.0-1/p50x50/12565389_129926077389205_1734904915451564294_n.jpg?oh=e76b99b775f94a9291a8d3f97aaead06&oe=5727BF7C"
          }
        },
        "id": "112425739139239"
      },
      {
        "link": "https://www.facebook.com/ARKAS-The-Original-Page-352589524877216/",
        "picture": {
          "data": {
            "is_silhouette": false,
            "url": "https://scontent.xx.fbcdn.net/hprofile-xta1/v/t1.0-1/p50x50/1381313_352855468183955_671412865_n.jpg?oh=8bbdbfce5d0e34a1120ca9b3e3d1c22d&oe=576B0804"
          }
        },
        "id": "352589524877216"
      },

1 个答案:

答案 0 :(得分:1)

看起来您没有使用正确的点符号表示响应。

数据数组嵌套在like中。所以要访问您需要的数据: 的 response.likes.data.length

所以要使用它,尝试这样的事情:

  console.log(response);
  for (var l = response.likes.data.length, i = 0; i < l; i++) {
      response.likes.data[i]
  }

编辑:这是一个jsfiddle链接,其中包含正确的点符号示例,其中包含以下信息:https://jsfiddle.net/b7r2qtre/