该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-03-26
最后修改:2011-03-26
https://github.com/hooopo/oauth_china
地址:目前完成oauth认证和发微薄功能,欢迎测试或者fork。 简介 引用 OAuth gem for rails3,支持豆瓣,新浪微薄,腾讯微博,搜狐微博,网易微博。
安装 gem install oauth_china 使用 在Gemfile里添加: gem 'oauth' gem 'oauth_china' 添加配置文件 配置文件路径: 引用 config/oauth/douban.yml
config/oauth/sina.yml config/oauth/qq.yml config/oauth/sohu.yml config/oauth/netease.yml 配置文件格式: 引用 development:
key: "you api key" secret: "your secret" url: "http://yoursite.com" callback: "http://localhost:3000/your_callback_url" production: key: "you api key" secret: "your secret" url: "http://yoursite.com" callback: "http://localhost:3000/your_callback_url" 演示 #config/oauth/sina.yml development: key: "you api key" secret: "your secret" url: "http://yoursite.com" callback: "http://localhost:3000/syncs/sina/callback" production: key: "you api key" secret: "your secret" url: "http://yoursite.com" callback: "http://localhost:3000/syncs/sina/callback" #config/routes.rb match "syncs/:type/new" => "syncs#new", :as => :sync_new match "syncs/:type/callback" => "syncs#callback", :as => :sync_callback #app/controllers/syncs_controller.rb # encoding: UTF-8 class SyncsController < ApplicationController before_filter :login_required def new client = OauthChina::Sina.new authorize_url = client.authorize_url Rails.cache.write(build_oauth_token_key(client.name, client.oauth_token), client.dump) redirect_to authorize_url end def callback client = OauthChina::Sina.load(Rails.cache.read(build_oauth_token_key(params[:type], params[:oauth_token]))) client.authorize(:oauth_verifier => params[:oauth_verifier]) results = client.dump if results[:access_token] && results[:access_token_secret] #在这里把access token and access token secret存到db #下次使用的时候: #client = OauthChina::Sina.load(:access_token => "xx", :access_token_secret => "xxx") #client.add_status("同步到新浪微薄..") flash[:notice] = "授权成功!" else flash[:notice] = "授权失败!" end redirect_to account_syncs_path end private def build_oauth_token_key(name, oauth_token) [name, oauth_token].join("_") end end 注意 系统时间要正确设置。否则会出现timstamps refused错误 ps.抱怨一下,国内这些开放api接口新浪的是最方便的,无论文档还是认证流程。其他都是各种不按标准。。各种坑人啊。。尤其是搜狐网易。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-03-26
虎跑V5啊,我看好你哦~~~
|
|
返回顶楼 | |
发表时间:2011-03-26
支持,感谢hooopo的辛勤劳动。
|
|
返回顶楼 | |
发表时间:2011-03-28
看着hoooooooop 成长
|
|
返回顶楼 | |
发表时间:2011-03-28
此前也整了个类似的
不过我觉得腾讯更坑爹。。。 |
|
返回顶楼 | |
发表时间:2011-03-29
也准备写个的,一直没时间
gem名字都一样 |
|
返回顶楼 | |
发表时间:2011-03-30
好插件,啥时候加入读微薄功能。
|
|
返回顶楼 | |
发表时间:2011-04-05
感谢楼主,项目刚好用上
|
|
返回顶楼 | |
发表时间:2011-05-17
最后修改:2011-05-17
更新了一下,支持上传图片了(现在只有新浪可以)
|
|
返回顶楼 | |
发表时间:2011-05-17
为啥豆瓣的oauth在成功获得request_token之后,换取access_token的时候oauth抛出错误啊。桌面应用不需要提供callback参数吧。
|
|
返回顶楼 | |