以短链服务为例,探讨免AppKey、免认证、Ajax跨域调用新浪微博AP
新浪微博的API官方提供了很多种调用方式,支持编程的,归根结底就是两种:
官方的方式总是显得很麻烦。我们来探讨一下,能不能通过非官方的方法,免AppKey、免认证、Ajax跨域调用新浪微博API呢? Web 2.0时代,短链服务非常流行。新浪的短链服务域名是t.cn,这个域名实在是非常短,没办法更短了。 打开新浪微博API的官方文档,关于短链服务是这样的描述的: 以上列举的方法调用都大同小异。我们再以第一个方法short_url/shorten为例。打开详细说明:http://open.weibo.com/wiki/2/short_url/shorten 我们来分析一下这一段说明:
接下来逐个攻破难点。 一,使用JQuery+JSONP跨域。 参考文档:http://baike.baidu.com/view/2131174.htm Jquery对JSONP非常友好,只需要在AJAX调用时指明dataType : jsonp就可以了。 二,频次限制问题。 既然不需要登录,频次限制问题就可以绕过。因为AppKey本身是半公开的。我们可以很轻松地Google到一大堆牛逼应用的Appkey。 例如 :
以上列举的这些AppKey,都是来自于一些用户量非常多的手机应用,它们的频次限制非常宽松的,几乎可以理解为“不限制”。为了解决频次限制问题,我们用它们的Appkey就可以了。 另外:新浪微博API的频次限制是有两个维度的,服务IP维度和用户IP维度。http://open.weibo.com/wiki/Rate-limiting。这一点与本文无关,因为Javascript在客户端运行。但如果您想对本文提到的方法进行改装,使用C#或其他高级语言在服务器端进行调用的话,就要注意服务器IP维度了。 三、简单的实验一下。 您现在可以直接在浏览器中访问这个地址: http://api.weibo.com/2/short_url/shorten.json?source=2849184197&url_long=http://www.cnblogs.com 浏览器中将显示 {"urls":[ {"result":true,"url_short":"http://t.cn/h5FGy","url_long":"http://www.cnblogs.com","type":0}]} 通过访问上述的地址,您已经得到了http://www.cnblogs.com的段地址:http://t.cn/h5FGy 注意我们使用的是http而非https,不需要使用https,上文已经提到了。 四、最终代码示例 最终代码的示例参考这里http://haotaoqu.com/item-45.html 这个示例将一个又臭又长的淘宝客URL地址转换为了新浪短地址。 Javascript代码如下:
<scripttype="text/javascript"> //使用iPad新浪微博客户端的Appkey
五、除short_url/shorten外,其他可以用此方法调用的API 凡是标记为“是否需要登录:否”的接口都可以通过本文的流氓方法进行调用。打开http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2官方文档慢慢选吧~ 转载自:http://www.cnblogs.com/azure/archive/2012/08/29/WeiboAPI.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |