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在IE和FF下attachEvent,addEventListener学习笔记
Nov 26 Javascript
IE6-8中Date不支持toISOString的修复方法
May 04 Javascript
javascript实现uploadify上传格式以及个数限制
Nov 23 Javascript
JS组件Bootstrap Table使用方法详解
Feb 02 Javascript
jQuery+ajax简单实现文件上传的方法
Jun 03 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
Angularjs单选改为多选的开发过程及问题解析
Feb 17 Javascript
VUE实现日历组件功能
Mar 13 Javascript
Vue.js划分组件的方法
Oct 29 Javascript
Angular-UI Bootstrap组件实现警报功能
Jul 16 Javascript
在Vue中使用Echarts实例图的方法实例
Oct 10 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
图象函数中的中文显示
2006/10/09 PHP
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
jquery 简单的进度条实现代码
2010/03/11 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
Angularjs Promise实例详解
2018/03/15 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
Python ldap实现登录实例代码
2016/09/30 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
python字典改变value值方法总结
2019/06/21 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
2019/08/09 Python
Python中logging日志库实例详解
2020/02/19 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
酒店总经理职务说明书
2014/02/26 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书