网站调用新浪微博内容(Web2.0时代,新浪微博API官方的方式总是显得很麻烦)

优采云 发布时间: 2022-04-05 08:15

  网站调用新浪微博内容(Web2.0时代,新浪微博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 的情况下,跨域调用新浪微博API?

  在Web2.0时代,短链服务非常流行。新浪的短链服务域名是,这个域名真的很短,没办法变短。

  打开新浪微博API官方文档,短链服务描述如下:

  

  上面列出的方法调用都是相似的。我们以第一种方法 short_url/shorten 为例。打开详细说明:

  

  我们来分析一下这一段:

  1.需要登录:不。这很重要,因为我们不需要登录,我们的“免认证”就可以正常工作。

  2.频率限制:是的。这也是很关键的,也就是说如果我们走官方的方式,调用的次数会非常有限。

  3.支持的格式:JSON。事实上,根据实验,新浪微博不仅支持JSON,还支持JSONP,但文档并没有告诉我们。这也很关键。因为有JSONP,就意味着可以轻松跨域。

  4.网址:. 事实上,这也是一个谎言。HTTPS 肯定会影响速度。经过实验,直接把HTTPS改成HTTP还是可以的。

  接下来,一一突破难关。

  一、使用JQuery+JSONP跨域。

  参考文档:

  jquery对JSONP非常友好,调用AJAX时只需指定dataType:jsonp即可。

  二是频率限制问题。

  由于不需要登录,因此可以绕过频率限制问题。因为 A*敏*感*词*ey 本身是半公开的。我们可以轻松地 Google 到一堆很棒的应用程序的 A*敏*感*词*ey。

  例如:

  iPhone新浪微博客户端App Key:5786724301

  iPad新浪客户端App Key:2849184197

  Google.Nexus Wave 客户端应用密钥:1206405345

  周伯通微博经理App Key:202088835

  微博应用密钥:211160679

  上面列出的 A*敏*感*词*ey 都是来自一些拥有大量用户的移动应用程序。它们的频率限制非常宽松,几乎可以理解为“无限制”。为了解决频率限制问题,我们可以使用他们的A*敏*感*词*ey。

  另外:新浪微博API的频次限制有两个维度,服务IP维度和用户IP维度。. 这与本文无关,因为 Javascript 在客户端运行。但是如果要修改本文中提到的方法,使用C#或其他高级语言在服务器端调用,一定要注意服务器IP维度。

  三、一个简单的实验。

  浏览器会显示

  {"urls":[

{"result":true,"url_short":"http://t.cn/h5FGy","url_long":","type":0}

]}

  通过访问上述的地址,您已经得到了的段地址:http://t.cn/h5FGy

  注意我们使用的是http而非https,不需要使用https,上文已经提到了。

   

  四、最终代码示例

  最终代码的示例参考这里http://haotaoqu.com/item-45.html

  这个示例将一个又臭又长的*敏*感*词*URL地址转换为了新浪短地址。

  Javascript代码如下:

   

   

  五、除了short_url/shorten,其他可以用这个方法调用的API

  任何标有“login required: no”的接口都可以通过本文的rogue方法调用。打开%E6%96%87%E6%A1%A3_V2的官方文档慢慢选择~

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线