cu_Cbear 发表于 2011-04-01 13:55

OAuth gem for rails,支持豆瓣,新浪微薄,腾讯微博,搜狐微博,网易微博

地址:https://github.com/hooopo/oauth_china
目前完成oauth认证和发微薄功能,欢迎测试或者fork。

简介

引用OAuth gem for rails3,支持豆瓣,新浪微薄,腾讯微博,搜狐微博,网易微博。安装

Ruby代码gem install oauth_china使用
在Gemfile里添加:


Ruby代码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"演示


Ruby代码#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)
         .join("_")
       end

   end注意
系统时间要正确设置。否则会出现timstamps refused错误

ps.抱怨一下,国内这些开放api接口新浪的是最方便的,无论文档还是认证流程。其他都是各种不按标准。。各种坑人啊。。尤其是搜狐网易

2gua 发表于 2011-04-01 14:09

不错不错的啊!

leiyulyly 发表于 2011-07-15 15:30

页面上怎么跳转页面了?那个连接页面要自己画嘛?

coolesting 发表于 2011-07-16 12:30

只支持rails吗? 其它应用支持吗?

2gua 发表于 2011-07-16 22:38

最新进展如何了?
页: [1]
查看完整版本: OAuth gem for rails,支持豆瓣,新浪微薄,腾讯微博,搜狐微博,网易微博