JSONP获取Twitter和Facebook文章数的具体步骤


Posted in Javascript onFebruary 24, 2014

原文是使用的Twitter和Facebook,因为国内被强,所以我觉得有用的是里面一个获取JSONP的那个工具类.

我很头疼的是,许多流行的 APIs 已经要求身份验证才能获取信息。

既然我可以访问到这些页面并取得信息,那为什么我不使用一些简单的代码来获取并跳过验证这一步呢?
我认为Twitter和Facebook要求身份验证来获取文章的数量,但事实证明你可以通过JSONP来获取这些信息。请参考下面的步骤。

The JavaScript

我将使用基本的JavaScript来告诉你如何做到这一点:

// 获取文章数量的封装对象 
var socialGetter = (function() { 
/* JSONP: 获取脚本的工具函数 */ 
function injectScript(url) { 
var script = document.createElement('script'); 
script.async = true; 
script.src = url; 
document.body.appendChild(script); 
} return { 
getFacebookCount: function(url, callbackName) { 
injectScript('https://graph.facebook.com/?id=' + url + '&callback=' + callbackName); 
}, 
getTwitterCount: function(url, callbackName) { 
injectScript('http://urls.api.twitter.com/1/urls/count.json?url=' + url + '&callback=' + callbackName); 
} 
}; 
})(); 
// 回调方法 
function twitterCallback(result) { 
result.count && console.log('The count is: ', result.count); 
} 
function facebookCallback(result) { 
result.shares && console.log('The count is: ', result.shares); 
} 
// 调用 
socialGetter.getFacebookCount('http://davidwalsh.name/twitter-facebook-jsonp', 'facebookCallback'); 
socialGetter.getTwitterCount('http://davidwalsh.name/twitter-facebook-jsonp', 'twitterCallback');

因为有众多轻量级的 micro-frameworks来处理JSONP,所以本文最重要的部分可能是获取信息的url了。根据需要和习惯选择你的JSONP工具!

Twitter和Facebook对于这些请求肯定有数量和频率上的限制,所以如果你的网站访问量很大,则JSONP很可能会被拦截或屏蔽. 一种快速的解决方案是将文章数量信息存储在sessionStorage中,但这只是针对单个用户的方式。如果你运行的网站流量较大,你最好选择在服务器端抓取数据并缓存下来,并在一定的时间内自动刷新。

Javascript 相关文章推荐
在IE上直接编辑网页内容的js代码(IE地址栏js)
Apr 27 Javascript
JQuery 获得绝对,相对位置的坐标方法
Feb 09 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
Mar 12 Javascript
JavaScript和CSS通过expression实现Table居中显示
Jun 28 Javascript
JavaScript中getUTCMinutes()方法的使用详解
Jun 10 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
jQuery实现页面倒计时并刷新效果
Mar 13 Javascript
Webpack打包慢问题的完美解决方法
Mar 16 Javascript
vue-router 源码之实现一个简单的 vue-router
Jul 02 Javascript
javascript实现一款好看的秒表计时器
Sep 05 Javascript
微信小程序入门之绘制时钟
Oct 22 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
Nov 06 Javascript
动态加载js、css等文件跨iframe实现
Feb 24 #Javascript
js操纵dom生成下拉列表框的方法
Feb 24 #Javascript
js设置function参数默认值(适合没有传参情况)
Feb 24 #Javascript
JS取request值以及自动执行使用示例
Feb 24 #Javascript
减少访问DOM的次数提升javascript性能
Feb 24 #Javascript
createTextRange()的使用示例含文本框选中部分文字内容
Feb 24 #Javascript
JavaScript 实现鼠标拖动元素实例代码
Feb 24 #Javascript
You might like
PHP安全防范技巧分享
2011/11/03 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
jQuery EasyUI API 中文文档 - EasyLoader 加载器
2011/09/29 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
Jquery easyui 下loaing效果示例代码
2013/08/12 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
运动检测ViBe算法python实现代码
2018/01/09 Python
详解python之协程gevent模块
2018/06/14 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
简单了解python元组tuple相关原理
2019/12/02 Python
Python定时器线程池原理详解
2020/02/26 Python
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
人力资源管理专业应届生求职信
2014/04/24 职场文书
优秀党支部申报材料
2014/12/24 职场文书
社区党务工作总结2015
2015/05/19 职场文书