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日历功能对象
Jan 12 Javascript
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
JS获取IP、MAC和主机名的五种方法
Nov 14 Javascript
jquery提交form表单时禁止重复提交的方法
Feb 13 Javascript
js与jquery回车提交的方法
Feb 03 Javascript
js实现右下角提示框的方法
Feb 03 Javascript
基于Jquery和html5的7款个性化地图插件
Nov 17 Javascript
jQuery实现Select左右复制移动内容
Aug 05 Javascript
小程序实现授权登陆的解决方案
Dec 02 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
May 12 Javascript
使用vue实现HTML页面生成图片的方法
Mar 12 Javascript
比较node.js和Deno
Apr 27 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 array_multisort()函数的使用札记
2011/07/03 PHP
php中json_decode()和json_encode()的使用方法
2012/06/04 PHP
php正则表达式使用的详细介绍
2013/04/27 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
接收键盘指令的脚本
2006/06/26 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
JS实现放烟花效果
2020/03/10 Javascript
Python中optparse模块使用浅析
2015/01/01 Python
python实现定时发送qq消息
2019/01/18 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
Python: 传递列表副本方式
2019/12/19 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
Django封装交互接口代码
2020/07/12 Python
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
什么是数组名
2012/05/10 面试题
介绍一下Ruby的特点
2013/01/20 面试题
实习老师离校感言
2014/02/03 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
《将心比心》教学反思
2016/02/23 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
Python实现聚类K-means算法详解
2022/07/15 Python