免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7659 | 回复: 4
打印 上一主题 下一主题

OAuth gem for rails,支持豆瓣,新浪微薄,腾讯微博,搜狐微博,网易微博 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-01 13:55 |只看该作者 |倒序浏览
地址:https://github.com/hooopo/oauth_china
目前完成oauth认证和发微薄功能,欢迎测试或者fork。

简介

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

Ruby代码
  1. gem install oauth_china
复制代码
使用
在Gemfile里添加:


Ruby代码
  1. gem 'oauth'
  2. gem 'oauth_china'
复制代码
添加配置文件

配置文件路径:

引用
  1. config/oauth/douban.yml
  2. config/oauth/sina.yml
  3. config/oauth/qq.yml
  4. config/oauth/sohu.yml
  5. config/oauth/netease.yml
复制代码
配置文件格式:

引用
  1. development:
  2.    key:    "you api key"
  3.    secret: "your secret"
  4.    url:    "http://yoursite.com"
  5.    callback: "http://localhost:3000/your_callback_url"
  6. production:
  7.    key:    "you api key"
  8.    secret: "your secret"
  9.    url:    "http://yoursite.com"
  10.    callback: "http://localhost:3000/your_callback_url"
复制代码
演示

  
Ruby代码
  1.   #config/oauth/sina.yml
  2.      development:
  3.            key:    "you api key"
  4.            secret: "your secret"
  5.            url:    "http://yoursite.com"
  6.            callback: "http://localhost:3000/syncs/sina/callback"
  7.          production:
  8.            key:    "you api key"
  9.            secret: "your secret"
  10.            url:    "http://yoursite.com"
  11.            callback: "http://localhost:3000/syncs/sina/callback"


  12.      #config/routes.rb
  13.      match "syncs/:type/new" => "syncs#new", :as => :sync_new
  14.      match "syncs/:type/callback" => "syncs#callback", :as => :sync_callback

  15.      #app/controllers/syncs_controller.rb
  16.      # encoding: UTF-8
  17.      class SyncsController < ApplicationController

  18.        before_filter :login_required

  19.        def new
  20.          client = OauthChina::Sina.new
  21.          authorize_url = client.authorize_url
  22.          Rails.cache.write(build_oauth_token_key(client.name, client.oauth_token), client.dump)
  23.          redirect_to authorize_url
  24.        end

  25.        def callback
  26.          client = OauthChina::Sina.load(Rails.cache.read(build_oauth_token_key(params[:type], params[:oauth_token])))
  27.          client.authorize(:oauth_verifier => params[:oauth_verifier])

  28.          results = client.dump

  29.          if results[:access_token] && results[:access_token_secret]
  30.            #在这里把access token and access token secret存到db
  31.            #下次使用的时候:
  32.            #client = OauthChina::Sina.load(:access_token => "xx", :access_token_secret => "xxx")
  33.            #client.add_status("同步到新浪微薄..")
  34.            flash[:notice] = "授权成功!"
  35.          else
  36.            flash[:notice] = "授权失败!"
  37.          end
  38.          redirect_to account_syncs_path
  39.        end

  40.        private
  41.        def build_oauth_token_key(name, oauth_token)
  42.          [name, oauth_token].join("_")
  43.        end

  44.      end
复制代码
注意
系统时间要正确设置。否则会出现timstamps refused错误

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

论坛徽章:
0
2 [报告]
发表于 2011-04-01 14:09 |只看该作者
不错不错的啊!

论坛徽章:
0
3 [报告]
发表于 2011-07-15 15:30 |只看该作者
页面上怎么跳转页面了?那个连接页面要自己画嘛?

论坛徽章:
0
4 [报告]
发表于 2011-07-16 12:30 |只看该作者
只支持rails吗? 其它应用支持吗?

论坛徽章:
0
5 [报告]
发表于 2011-07-16 22:38 |只看该作者
最新进展如何了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP