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 相关文章推荐
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
Aug 13 Javascript
js与运算符和或运算符的妙用
Feb 14 Javascript
JavaScript中的pow()方法使用详解
Jun 15 Javascript
jQuery实现类似老虎机滚动抽奖效果
Aug 06 Javascript
js图片轮播效果实现代码
Apr 18 Javascript
jQuery简单获取DIV和A标签元素位置的方法
Feb 07 Javascript
JS库中的Particles.js在vue上的运用案例分析
Sep 13 Javascript
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 jQuery
Javascript之高级数组API的使用实例
Mar 08 Javascript
layUI的验证码功能及校验实例
Oct 25 Javascript
浅谈webpack构建工具配置和常用插件总结
May 11 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
附件名前加网站名
2008/03/23 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
2016/11/12 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
javascript eval和JSON之间的联系
2009/12/31 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
vue3.0 上手体验
2020/09/21 Javascript
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
python excel转换csv代码实例
2019/08/26 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
Django如何重置migration的几种情景
2021/02/24 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
优秀员工表扬信
2014/01/17 职场文书
网络教育自我鉴定
2014/02/04 职场文书
2014年高考决心书
2014/03/11 职场文书
小学亲子活动总结
2014/07/01 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书