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 相关文章推荐
File, FileReader 和 Ajax 文件上传实例分析(php)
Apr 27 Javascript
QQ登录背景闪动效果附效果演示源码下载
Sep 22 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
Oct 25 Javascript
Javascript实现的SHA-256加密算法完整实例
Feb 02 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
Jun 08 Javascript
Bootstrap表单Form全面解析
Jun 13 Javascript
给easyui的datebox控件添加清空按钮的实现方法
Nov 09 Javascript
javascript ES6中箭头函数注意细节小结
Feb 17 Javascript
angular directive的简单使用总结
May 24 Javascript
解决vue处理axios post请求传参的问题
Mar 05 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
May 17 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
May 28 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 $_FILES函数详解
2011/03/09 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
php内存缓存实现方法
2015/01/24 PHP
PHP解析RSS的方法
2015/03/05 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
Python 制作糗事百科爬虫实例
2016/09/22 Python
Python实现两个list对应元素相减操作示例
2017/06/09 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
基于Python测试程序是否有错误
2020/05/16 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
大学老师推荐信
2014/02/25 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA