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 相关文章推荐
JS两种定义方式的区别、内部原理
Nov 21 Javascript
小白谈谈对JS原型链的理解
May 03 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
Jun 13 Javascript
AngularJS指令与控制器之间的交互功能示例
Dec 14 Javascript
详解Vue.js 2.0 如何使用axios
Apr 21 Javascript
jQuery 实现双击编辑表格功能
Jun 19 jQuery
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
bootstrap动态调用select下拉框的实例代码
Aug 09 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
JS实现点击拉拽轮播图pc端移动端适配
Sep 05 Javascript
详解如何用typescript开发koa2的二三事
Nov 13 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
Oct 30 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 5.0对象模型深度探索之对象复制
2008/03/27 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
javascript的函数
2007/01/31 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
详解Node.js串行化流程控制
2017/05/04 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
书单|人生苦短,你还不用python!
2017/12/29 Python
python3 requests库文件上传与下载实现详解
2019/08/22 Python
python实现大学人员管理系统
2019/10/25 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
外国语学院毕业生自荐信
2013/10/28 职场文书
客服文员岗位职责
2013/11/29 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
保外就医申请书范文
2015/08/06 职场文书
解析MySQL binlog
2021/06/11 MySQL
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB