Facebook图表 - 显示网址“共享”的Ajax / JSON

时间:2015-08-17 12:01:18

标签: javascript html ajax json facebook

我很擅长使用JSON,并努力掌握从对象检索数据并打印到HTML。基本的要求是我从facebook检索url共享计数,这显然是它的公共数据,我不需要乱用访问令牌。

到目前为止我的脚本

  

$.ajax(
  {
  url: 'http://graph.facebook.com/?ids=http://google.co.uk',
  success: function(json)
    {
      console.log(json); 
    }       
});  

  

返回以下内容作为控制台中的对象。

[object Object] {
 http://google.co.uk: [object Object] {
 comments: 5,
 id: "http://google.co.uk",
 shares: 321364
 }
}

所以我可以看到'股票'数据在那里,但我如何访问它并打印成div?我已经尝试将它附加到'sharecount'div这样的

jQuery(response_container).append('<div id="sharecount">Shares: ' + shares + '</div>');

但我只是在黑暗中摸索,可以使用一些指导。大多数指南似乎都已过时,建议使用旧的FQL方法。

如果有人想怜惜我,我在这里有一个JSBIN!

http://jsbin.com/qinutanotu/edit?html,console,output

感谢

更新

我现在把它改成了这个有用的

  <script>
   $.ajax(
   {
   url: 'http://graph.facebook.com/?ids=http://google.co.uk',
   success: function(json)
    {
      var urlshares = (json['http://google.co.uk'].shares)
      $("#sharecount").append(urlshares);
    }       
   });    
  </script>
  <div id="sharecount"></div>

更新#2

graph.facebook.com似乎有时不会返回“股票”,这可能与该网址没有共享有关。而不是返回'0'它根本不返回任何东西。为了解决这个问题,我已经用html替换了append并给了div一个默认值0,如果url有一个共享计数被传回,它将被替换

  <script>
   $.ajax(
   {
   url: 'http://graph.facebook.com/?ids=http://google.co.uk',
   success: function(json)
    {
      var urlshares = (json['http://google.co.uk'].shares)
      $("#sharecount").html(urlshares);
    }       
   });    
  </script>
  <div id="sharecount">0</div>

1 个答案:

答案 0 :(得分:0)

Facebook在此处使用URL作为关键字,因此您首先需要json['http://google.co.uk']来访问内部对象,然后json['http://google.co.uk'].shares来访问共享值。

http://google.co.uk包含无法使用点表示法使用该键访问属性的字符,因此必须在此处使用['http://google.co.uk']。)