网站调用新浪微博内容(前段时间收到了新浪微博客开放平台发来协议)
优采云 发布时间: 2022-03-29 16:04网站调用新浪微博内容(前段时间收到了新浪微博客开放平台发来协议)
前段时间收到新浪微博开放平台发来的邮件,宣布OAuth1协议将在9月份停止,让我很意外。以下为邮件原文:
尊敬的开发者您好:
新浪微博开放平台预计于2012年9月停止使用旧接口和OAuth1.0。请尽快将您的应用迁移到新接口和OAuth2.0。
新版界面效率更高,功能更丰富。为了帮助您迁移,请参考以下链接:
...
希望大家做好相关准备。技术问题可以咨询@microblogging API。给开发者带来的不便敬请谅解。
今年 9 月的最后期限是一个重磅*敏*感*词*,让所有仍在 Oauth1 上的 网站 都面临不得不升级的尴尬。
之前花了一些时间研究了新浪微博的全过程。事实上,我大部分时间都在研究它的审计机制。OAuth2 调用相对简单。先说一下如何使用OAuth2进行授权。
其实开发前还需要做一些准备工作,比如在新浪微博开放平台上创建一个账号,其实就是一个微博账号。登录后访问,点击“网站访问”,会引导你添加一个新的网站表单,这里有一点需要注意,目前,网站的访问新浪微博可以验证域名的归属,所以必须输入正确的域名并在网站首页添加相应的meta标签才能通过。完成后不需要立即提交审核,因为这一步需要提供备案密码,不备案不能通过,但是验证域名的前提是服务器的80端口可以访问,并且是一个解析的域名,
网站访问后获取的App Key和App Secret需要保存,在代码中使用。
由于我更喜欢使用design,所以OAuth2的集成也是基于design,在Gemfile中添加了对应的gem:
宝石文件
1
2
3
# Weibo support
gem 'devise'
gem 'omniauth-weibo-oauth2', '~> 0.2.0'
在项目根目录下执行bundle,安装对应的gem
使用设计的朋友应该知道,user.rb模型中默认会有一个功能模块配置,模块修改如下:
应用程序/模型/user.rb
1
2
3
4
5
6
7
8
9
10
11
12
class User > User.omniauth_providers
=> [:weibo]
至此,我们可以配置我们之前做的网站访问,新建一个service.yml来存放第三方App Key和App Secret:
应用程序/配置/服务.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<p>common: &common
weibo:
api_key: "这里填写你获取到的api key"
api_secret: "这里填写你获取到的api secret"
redirect_uri: "http://www.yourdomain.com/users/auth/weibo/callback"
production: