免A*敏*感*词*ey、免认证、Ajax跨域新浪微博API呢?
优采云 发布时间: 2021-05-03 20:22免A*敏*感*词*ey、免认证、Ajax跨域新浪微博API呢?
新浪微博的官方API提供了多种调用方法来支持编程。归根结底,有两个:
1.基于Oauth协议,使用Open API。 (%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E)
2.使用微博JS-SDK()。
官方方法似乎总是很麻烦。让我们讨论一下,我们可以使用非官方方法来调用没有A*敏*感*词*ey,身份验证和Ajax的Sina Weibo API吗?
Web 2. 0时代,短链服务非常流行。新浪的短链服务域名是,这个域名确实很短,没有办法使它更短。
打开新浪微博API的官方文档,对短链服务的描述如下:
上面列出的方法调用都是相似的。让我们以第一种方法short_url / shorten为例。打开详细说明:
让我们分析一下此描述:
1.是否需要登录:否。这非常重要。由于无需登录,因此我们的“免认证”将可以正常工作。
2.频率限制:是。这也很关键,这意味着如果我们遵循官方的方法,则拨打电话的数量将非常有限。
3.支持格式:JSON。实际上,根据实验,新浪微博不仅支持JSON,还支持JSONP,但该文档没有告诉我们。这也很关键。由于使用JSONP,这意味着它可以轻松地跨域使用。
4. URL :。实际上,这也是一个谎言。 HTTPS肯定会影响速度。经过实验后,仍然可以直接将HTTPS更改为HTTP。
下一步,一个个地克服困难。
一个,使用JQuery + JSONP进行跨域访问。
参考文件:
jQuery对JSONP非常友好,调用AJAX时只需指定dataType:jsonp。
第二,频率限制的问题。
由于不需要登录,因此可以绕过频率限制问题。因为A*敏*感*词*ey本身是半公开的。我们可以轻松地将Google A*敏*感*词*ey转到许多很棒的应用程序。
例如:
Iphone新浪微博客户端应用程序密钥:57867243301
iPad新浪客户端应用程序密钥:2849184197
Google.Nexus Wave客户端应用程序密钥:1206405345
周伯通微博男管家App Key:202088835
Weico App密钥:211160679
上面列出的A*敏*感*词*eys来自具有大量用户的某些手机应用程序。它们的频率限制非常宽松,几乎可以理解为“不受限制”。为了解决频率限制问题,我们可以使用他们的A*敏*感*词*ey。
此外:新浪微博API的频率限制具有两个维度,即服务IP维度和用户IP维度。 。这一点与本文无关,因为Javascript在客户端运行。但是如果要修改本文提到的方法并使用C#或其他高级语言在服务器端进行调用,则必须注意服务器IP维度。
三、一个简单的实验。
您现在可以直接在浏览器中访问此地址:
://
它将显示在浏览器中
{"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代码如下:
<a title="复制代码">
</a>$(document).ready(function(){
var j=$("#urlText");
var i=$("#goumai");
$.ajax({
<p> //使用iPad新浪微博客户端的A*敏*感*词*ey
url: 'http://api.weibo.com/2/short_url/shorten.json?source=2849184197&url_long='+i[0].href,
type: "GET",
dataType: "jsonp", //使用JSONP方法进行AJAX
cache: false,
success: function (data) {
j.val ( data.data.urls[0].url_short); //处理返回数据,显示到网页上
});
}});
});
<a title="复制代码">
</a></p>
五、除了short_url / shorten以外,其他可以通过此方法调用的API
可以通过本文中的流氓方法调用任何标记为“您是否需要登录:否”的接口。打开%E6%96%87%E6%A1%A3_V2正式文档,然后慢慢选择它〜