最近一段时间一直在研究有关Social Network的东西,这里有几个在当前国外主流社交网站上用来显示分享数量的API,记录一下,今后可能会用得着。

Facebook

  Facebook将FQL(Facebook Query Language)查询语句以URL参数的形式传递给服务器来实现查询,不仅可以查询当前页面的Sharing count,还可以查询许多数据。所涉及到的表和相关字段可以参考Facebook的官方文档:https://developers.facebook.com/docs/reference/fql/

  这里还有一个Facebook sharing counter的查询工具,直接输入要查询的页面的URL地址就可以查询该页面在Facebook中被分享过多少次了http://www.emetello.com/facebook-share-counter/

  下面是一段通过JavaScript代码在页面上显示分享到Facebook的次数,代码通过JQuery的Ajax方法调用Facebook的查询语句来获取分享次数的数字。注意观察Ajax中的url参数,其中query的值是一个FQL查询语句,当前查询link_stat表的share_count字段。Facebook的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

Sharing count on Facebook, Twitter, and LinkedIn的更多相关文章

  1. [转]Code! MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on (C#)

    本文转自:https://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-o ...

  2. 移动端折腾国外分享(facebook、twitter、linkedin)

    一.前言 国内做HTML5页面,关注最多就是微信分享了,之前也写过关于微信分享的文章,可以点击查看:分享相关文章 再者,就是国内的其它分享,比如常用的新浪微博.腾讯微博.QQ空间等等,最方便的就是直接 ...

  3. share.js一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点等

    官网上面 https://github.com/overtrue/share.js非常详细的介绍了share.js他的使用 使用方式有:第一:使用 npm npm install social-sha ...

  4. Code! MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on (C#)

    http://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2- ...

  5. FaceBook Twitter实习生简历求内推

    写在博客里面吧. 有一个朋友,男,博士在读,研究方向为图像处理,计算机视觉相关. 想在在读期间有一些海外实习经历.不知道哪位博友,有相关的人脉,求内推啊.内推成功的话请吃大餐,哈哈!

  6. ios学习:swift中实现分享到微博、facebook,twitter等

    在swift中打开分享功能原来是如此的简单. 1.首先须要 import Social 2.在分享button事件以下 var controller:SLComposeViewController = ...

  7. Spring Boot 学习(1)

    文 by / 林本托 Tip 做一个终身学习的人. Spring Boot 初体验 Spring Boot 包含了很多 start(Spring boot 中 的叫法,就是一个模块,后文统一称模块,便 ...

  8. How to increase TX Power Signal Strength of WiFi

    转自:https://www.blackmoreops.com/2013/10/27/how-to-increase-tx-power-signal-strength-of-wifi/ This gu ...

  9. Top 5 Free Screen Recording Softwares For Windows

    [转]Top 5 Free Screen Recording Softwares For Windows 该文章是转过来的,因为这里介绍了好几款免费的录制视频的软件.我自己需要使用,也许大家也有需求. ...

随机推荐

  1. C# XSD校验XML文件的代码

    /// <summary> /// XSD文件校验XML /// </summary> /// <returns></returns> public A ...

  2. LINUX内核分析第八周学习总结:进程的切换和系统的一般执行过程

    韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.进程切换的关 ...

  3. ( 解压缩版 免安装版 或 zip版 )如何修改mysql5.6.24 字符编码

    1.当我们把zip文件格式解压到指定目录后,并且完成基本环境配置后,打开mysql 5.6.24会发现名为[my-default.ini]的文件.我们用记事本打开该文件会发现并没有[default-c ...

  4. spring中Bean的生命周期

    初始化方法:在Bean实例初始化后自动执行的方法 销毁方法:在Bean实例销毁前执行的方法 <bean id="bm" class="springTest.Car& ...

  5. JS事件冒泡

    JavaSciprt事件中有两个很重要的特性:事件冒泡以及目标元素. 事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发.这 一过程被 ...

  6. CentOS6.4完全安装FFmpeg手记

    鼓捣媒体的人对FFmpeg应该不会陌生,它不仅功能强大,结构优美,灵活.易扩展,也是很其他多媒体播放器的基础,例如VLC,Mplayer等等,还有好多商业播放器都用了ffmpeg,但这些商业软件却没有 ...

  7. RecycleView在eclipse的初体验

    在sdk中找到v7包 \sdk\extras\android\support\v7\recyclerview 导入工程 Import\Android\Existing Android Code Int ...

  8. iOS 支付宝支付

    在开发过程中,经常需要接入第三方支付.下面对支付进行一个概括. 支付宝支付 支付宝SDK下载地址:https://doc.open.alipay.com/doc2/detail?treeId=54&a ...

  9. TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)

    1.    自定义字体可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的Typeface又使用TTF字体文件来设置字体所以,我们可以在程序中放入TTF字 ...

  10. Android性能优化方法(九)

    通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的.一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构.重构的好处有很多,其中一点,就 ...