使用 JavaScript 获取 Facebook 份额计数

getting facebook share count using javascript

本文关键字:Facebook JavaScript 获取 使用      更新时间:2023-09-26

我写了以下代码:

function shareCount(url){
    var count;
    $.ajax({
        type: "GET",
        url: "http://api.facebook.com/method/fql.query?query=SELECT+share_count+FROM+link_stat+WHERE+url%3D%22http%3A%2F%2F9gag.com%2Fgag%2F"+encodeURIComponent(url)+"%22",
        dataType: "xml",
        success: function(xml) {
                alert($(xml).find('share_count').text());
                return $(xml).find('share_count').text();
        }
    });
    //alert(count);
}

它只是向 Facebook 发送一个 FQL 查询以获取给定链接的share_count,该链接很好,并且alert($(xml).find('share_count').text());工作,但是当我返回计数时,另一个函数说 var 未定义! 当我在结束范围内取消注释alert()时,也会发生同样的事情。

这是向此函数发送请求的另一个函数的一部分(不确定其是否相关(

g.innerHTML = h("#template", {
                id: c.images[a].id,
                title: c.images[a].title,
                image: c.images[a].image.small,
                time: c.images[a].time,
                votes: c.images[a].votes,
                url: c.images[a].url,
                shareCount: shareCount(c.images[a].id)
            });

警报在 ajax 完成之前执行。

为什么要使用自己的ajax方法来获取fb数据?你为什么不使用图形 api,下面这样的东西应该可以做到

FB.api({
    method: 'fql.query',
    query: 'SELECT share_count FROM link_stat WHERE url = "http://9gag.com/gag/"'
}, function (data) {
    alert(data[0].share_count);
    //    do the rest here
});

演示

希望这有帮助