使用新浪微博开放平台api同步微博内容至自己网站(假设我要开发一个基于微博开放平台的应用(App)(组图))
优采云 发布时间: 2021-11-07 19:31使用新浪微博开放平台api同步微博内容至自己网站(假设我要开发一个基于微博开放平台的应用(App)(组图))
之前在新浪微博上创建了一个应用,拿到了App key和Secret key,可以调用新浪微博开放平台API来了解一下。前几天,连续4天没有课,于是我就耐心的摸索着API的使用方法。
新浪微博开放平台虽然提供了各种语言版本的开发SDK下载,但也附上了一些基本接口调用的demo和接口描述文档。但是经过这几天的耐心尝试,感觉新浪微博开放平台上的入门指南与下载的Java开发包weibo4j包中的Demo使用注释有些不一致。再加上自我理解能力有限,导致了很多困惑。幸运的是,我并没有放弃尝试去理解它。废话少说,以下是我的学习过程。
如果你想通过调用新浪微博开放平台API开发自己的微博应用,首先要有一个新浪微博账号和一个CSDN账号,因为我们需要同时用这两个账号创建一个微博应用获取App key和Secret key。App key和Secret key有什么用?
其实我只是在新浪微博开放平台上看了一系列的说明,并不是很了解App key和Secret key的使用。因为更重要的是了解OAuth认证授权的整个过程,以及几个Token和4个URL在整个OAuth认证授权过程中的作用。
当我第一次遇到完全没有概念的 OAuth 时,我认为它是不可能学习的。幸好找到了下面的文章,对理解OAuth很有帮助。链接如下:
OAUTH协议介绍
基于OAuth安全协议的Java应用编程 在Twitter应用中使用OAuth
OAuth 有 3 个参与者,分别是 User、Service Provider 和 Consumer。假设我想为其他新浪微博用户开发一个基于新浪微博开放平台的应用程序(App)。它们的对应关系如下:
用户=>想要使用此应用程序的新浪微博用户
提供商=>新浪微博开放平台
消费者=>应用
实际上,我们的App相当于User和Provider(新浪微博平台)的第三方应用。由于第三方App想要访问用户在新浪微博平台上保存的资源,必须经过一系列的认证和授权才能工作。
下面是根据我对整个OAuth认证授权流程的理解绘制的图(可以跳过,对下面的一些概念有一定了解后再看流程图):
650) this.width=650;" onsubmit="" onchange="" onunload="" onselect="" onreset="">
结合上面的流程图,下面是我对这些术语的理解以及对各个过程的描述:
消费者秘钥和消费者秘钥:在新浪微博开放平台上分别称为App秘钥和秘钥。消费者向提供者申请,希望能够调用其开放的API。申请通过后,Provider将其分配给满足其要求的Consumer,以唯一标识该Consumer满足Provider的要求。
对应于上图中的流程 1 和 2。
Request Token,Request Secret:当用户访问Consumer,希望获得其特殊服务时,在用户整合Provider中存储的资源后,由Consumer返回该服务。此时,Consumer向Provider请求获取Requst Token,用于唯一标识Consumer和User之间的具体关联。
对应上图中的流程3、4、5。
要处理 6,消费者必须将用户引导至提供者提供的 OAuth 身份验证和授权页面。事实上,浏览器被重定向到带有请求令牌和请求秘密参数的 authenticationURL。URL 由提供商提供。
接下来,User在流程7和流程8中授权Consumer(一般是通过输入账号和密码登录),然后Provider会被重定向到流程1中Consumer提供的Callback_URL,URL参数附加OAuth令牌和 OAuth 验证器。
步骤9中,Consumer通过之前从Provider获取的Request Token再次请求Provider获取Access Token。
Access Token,Access Secret:如果Provider在流程10中返回了一个未经User授权的Access Token,用于唯一标识特定Consumer可以访问用户在Provider中存储的资源和信息。然后Consumer就可以开始使用获取到的Access Token和Access Secret来访问相应User存储在Provider中的资源了。
在流程11中对用户信息进行整合操作后,即可将具体的服务结果返回给用户。
通过以上对OAuth流程的了解,我们知道,实际上User并没有向第三方Consumer透露登录Provider所需的账号和密码。同时,用户可以使用Consumer的特殊服务。多么巧妙而安全的操作过程!
此外,在上图中,Consumer 向 Provider 提出了三个不同的请求。实际上,Provider 提供了三个不同功能的 URL 供 Consumer 访问。这3个网址在新浪微博开放平台的截图如下:
650) this.width=650;" onsubmit="" onchange="" onunload="" onselect="" onreset="">
650) this.width=650;" onsubmit="" onchange="" onunload="" onselect="" onreset="">650) this.width=650;" onsubmit=""onchange="" onunload="" onselect="" onreset="">
概括:
1、 以上对OAuth流程的理解很可能会被误解,因为我更多是基于对新浪微博开发包weibo4j中代码的理解和动手测试。当然,以上文章部分API文档包括新浪微博我已经看了好几遍了……希望大家发现错误,请指正,谢谢!
2、 了解一些理论知识是不够的。如果你想手工完成,实际代码应该在下一篇文章中给出。
本文来自“蚂蚁”博客,请务必保留此出处