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 相关文章推荐
javascript显示隐藏层比较不错的方法分析
Sep 30 Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
Sep 29 Javascript
jQuery.buildFragment使用方法及思路分析
Jan 07 Javascript
用jquery的方法制作一个简单的导航栏
Jun 23 Javascript
wap图片滚动特效无css3元素纯js脚本编写
Aug 22 Javascript
解决js下referer兼容各大浏览器的方法
Nov 03 Javascript
jquery实现的省市区三级联动
Apr 02 Javascript
只需五句话搞定JavaScript作用域(经典)
Jul 26 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
Feb 12 jQuery
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
Dec 29 Javascript
国内常用的js类库大全(CDN公共库)
Jun 24 Javascript
vue 子组件修改data或调用操作
Aug 07 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 - Html Transfer Code
2006/10/09 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
编写Python的web框架中的Model的教程
2015/04/29 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
python从子线程中获得返回值的方法
2019/01/30 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
什么是Python变量作用域
2020/06/03 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
2020/06/14 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
法制宣传月活动总结
2014/04/29 职场文书
竞争上岗演讲稿范文
2014/05/12 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
团代会邀请函
2015/02/02 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers