AjaxSharing count on 非死不可, Twitter, and LinkedIn

  近期一段时间一直在探讨有关Social
Network的东西,这里有多少个在当前外国主流社交网站上用来体现分享数量的API,记录一下,今后也许会用得着。

Ajax 1

Facebook

  Facebook将FQL(非死不可Query
Language)查询语句以URL参数的形式传递给服务器来兑现查询,不仅可以查询当前页面的Sharing
count,还足以查询许多数码。所提到到的表和相关字段可以参见Facebook的合法文档:https://developers.facebook.com/docs/reference/fql/

  这里还有一个非死不可 sharing
counter的询问工具,间接输入要查询的页面的URL地址就足以查询该页面在非死不可中被分享过些微次了http://www.emetello.com/facebook-share-counter/

  上边是一段通过JavaScript代码在页面上显得分享到Facebook的次数,代码通过JQuery的Ajax方法调用非死不可的查询语句来拿到分享次数的数字。注意观望Ajax中的url参数,其中query的值是一个FQL查询语句,当前查询link_stat表的share_count字段。非死不可的FQL查询语句不协理*通配符来查询表的装有字段。format参数用来指定再次来到值的档次,本例中为json对象字符串。timestamp参数是人造添加的,效率是为着规避可能的浏览器缓存。displaySharingCount方法负责在页面上体现获取到的结果,假诺数字高于三位数,则只展现”500+”,并给元素添加title属性用以展现完整的值;否则就直接展现值。

function displaySharingCount(val, objId) {
    var blank = " ";
    var id = "#" + objId
    if (typeof (val) != "undefined") {
        if (val.length > 3) {
            $(id).attr("title", val);
            $(id).text(blank + "500+");
        }
        else
            $(id).text(blank + val);
    }
}

window.onload = function () {
    var currUrl = encodeURIComponent(location.href);

    $.ajax({
        url: "https://api.facebook.com/method/fql.query?query=select%20share_count%20from%20link_stat%20where%20url=%22" + currUrl + "%22&format=json&timestamp=" + new Date().getTime(),
        type: "get",
        datatype: "html",
        async: true,
        success: function (data) {
            displaySharingCount(data[0].share_count, "Facebook_count");
        }
    });
 };

 

Twitter & LinkedIn

  Twitter和LinkedIn在获取sharing
count方面很相像,都是因此一个URL来博取再次来到结果,可以指定再次来到结果是json格式或jsonp。看下边的例子,通过jsonp来取得Twitter和LinkedIn的sharing
count值。

function getTwitterCount(obj) {
    displaySharingCount(obj.count, "Twitter_count");
}

function getLinkedInCount(obj) {
    displaySharingCount(obj.count, "LinkedIn_count");
}

function createScript(id, src) {
    var js, fjs = document.getElementsByTagName("script")[0];
    js = document.getElementById(id);
    if (js) {
        document.removeChild(js);
    }
    js = document.createElement("script");
    js.id = id;
    js.src = src;
    fjs.parentNode.insertBefore(js, fjs);
}

window.onload = function () {
    var currUrl = encodeURIComponent(location.href);

    createScript("Twitter_jscallback", "http://urls.api.twitter.com/1/urls/count.json?url=" + currUrl + "&format=jsonp&callback=getTwitterCount");
    createScript("LinkedIn_jscallback", "http://www.linkedin.com/countserv/count/share?url=" + currUrl + "&format=jsonp&callback=getLinkedInCount");
};

  LinkedIn的官方网站上有关于咋样行使sharing
count的牵线:https://developer.linkedin.com/retrieving-share-counts-custom-buttons

  有一个地点需要留意,这就是眼前页面的URL字符串是大小写敏感的,而且是否encoded也会有震慑。例如上边这个URL,虽然针对的都是同一个页面,可是获取到的sharing
count也会有分别:

http://www.cnblogs.com/jaxu

http://www.cnblogs.com/Jaxu

http%3A%2F%2Fwww.cnblogs.com%2Fjaxu

相关文章