`
Hooopo
  • 浏览: 335152 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • Ruby
阅读更多
地址: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接口新浪的是最方便的,无论文档还是认证流程。其他都是各种不按标准。。各种坑人啊。。尤其是搜狐网易。

https://db-china.org
分享到:
评论
19 楼 Hooopo 2012-06-28  
fvb7811032 写道
Hooopo 写道
fvb7811032 写道
樓主,我想問下,我騰訊微博的圖片文字分享已經實現,就是子啊做SINA的時候,因為用的都是Oauth 騰訊微博的URL我是這樣寫的String url ="http://open.weibo.com/authentication?oauth_token="+ oauth_token;,新浪微博該怎麼寫啊,求教

不会java..

安卓的

更不会了
18 楼 fvb7811032 2012-06-28  
Hooopo 写道
fvb7811032 写道
樓主,我想問下,我騰訊微博的圖片文字分享已經實現,就是子啊做SINA的時候,因為用的都是Oauth 騰訊微博的URL我是這樣寫的String url ="http://open.weibo.com/authentication?oauth_token="+ oauth_token;,新浪微博該怎麼寫啊,求教

不会java..

安卓的
17 楼 fvb7811032 2012-06-28  
樓主,我想問下,我騰訊微博的圖片文字分享已經實現,就是子啊做SINA的時候,因為用的都是Oauth 騰訊微博的URL我是這樣寫的String url ="http://open.weibo.com/authentication?oauth_token="+ oauth_token;,新浪微博該怎麼寫啊,求教   我也是android的,
16 楼 Hooopo 2012-06-28  
fvb7811032 写道
樓主,我想問下,我騰訊微博的圖片文字分享已經實現,就是子啊做SINA的時候,因為用的都是Oauth 騰訊微博的URL我是這樣寫的String url ="http://open.weibo.com/authentication?oauth_token="+ oauth_token;,新浪微博該怎麼寫啊,求教

不会java..
15 楼 fvb7811032 2012-06-28  
樓主,我想問下,我騰訊微博的圖片文字分享已經實現,就是子啊做SINA的時候,因為用的都是Oauth 騰訊微博的URL我是這樣寫的String url ="http://open.weibo.com/authentication?oauth_token="+ oauth_token;,新浪微博該怎麼寫啊,求教
14 楼 struts 2012-04-26  
好东西,正好项目中用到
13 楼 wowpzp 2011-05-27  
kingze 写道
我想弱弱地问一下,如何能取得他的用户名和 ID号呢???


以新浪为例
      resp = client.get '/account/verify_credentials.json'
      sina_json_data = resp.body
      sina_hash = ActiveSupport::JSON.decode(sina_json_data)

      sina_id = sina_hash['id']
      sina_name = sina_hash['name']


12 楼 kingze 2011-05-27  
我想弱弱地问一下,如何能取得他的用户名和 ID号呢???
11 楼 Hooopo 2011-05-18  
lemonweirui 写道
为啥豆瓣的oauth在成功获得request_token之后,换取access_token的时候oauth抛出错误啊。桌面应用不需要提供callback参数吧。


这得看豆瓣的API文档要求了。
10 楼 Hooopo 2011-05-18  
图片上传支持新浪和搜狐还有163微博了。
腾讯的上传图片总返回:"{\"data\":null,\"msg\":\"file size error\",\"ret\":1}"

同样的代码在新浪和搜狐就ok。
网易的发图片API接口真变态,分步骤:
引用

注意:本接口只是传图,并不能发微博,如果发带图片的微博,请先调用本接口得到upload_image_url后,再调用statuses/update,并将upload_image_url作为作为status参数值

http://open.t.163.com/wiki/index.php?title=%E4%B8%8A%E4%BC%A0%E5%9B%BE%E7%89%87(statuses/upload)
9 楼 lemonweirui 2011-05-17  
为啥豆瓣的oauth在成功获得request_token之后,换取access_token的时候oauth抛出错误啊。桌面应用不需要提供callback参数吧。

8 楼 Hooopo 2011-05-17  
更新了一下,支持上传图片了(现在只有新浪可以)
7 楼 wowpzp 2011-04-05  
感谢楼主,项目刚好用上
6 楼 mewleo 2011-03-30  
好插件,啥时候加入读微薄功能。
5 楼 zires 2011-03-29  
也准备写个的,一直没时间
gem名字都一样
4 楼 liltos 2011-03-28  
此前也整了个类似的
不过我觉得腾讯更坑爹。。。
3 楼 jinleileiking 2011-03-28  
看着hoooooooop 成长
2 楼 caryl 2011-03-26  
支持,感谢hooopo的辛勤劳动。
1 楼 elementstorm 2011-03-26  
虎跑V5啊,我看好你哦~~~

相关推荐

    OAuth gem for rails3

    OAuth gem for Rails3 是一个针对Ruby on Rails框架的授权库,它实现了OAuth协议,以便于在Rails应用中安全地处理第三方服务的授权流程。OAuth是一个开放标准,允许用户让第三方应用在无需分享用户名和密码的情况下...

    Oauth 2.0 新浪微博 腾讯微博

    在本文中,我们将深入探讨OAuth 2.0的工作原理以及如何将其应用于新浪微博和腾讯微博的授权与发布功能。 OAuth 2.0的核心流程包括四个主要角色:资源所有者(User)、资源服务器(Resource Server)、客户端...

    腾讯微博,新浪微博SDK 开心网搜狐微博轻量的SDK代码包

    3、新浪微博SDK OAuth1.0 & OAuth2.0 4、开心网API OAuth1.0 & OAuth2.0 5、搜狐微博 OAuth1.0 6、网易微博 OAuth1.0 7、人人网SDK OAuth2.0 8、百度开放平台 OAuth2.0 一库接入所有平台 :) demo目录是演示...

    新浪、腾讯、网易、搜狐微博的OAuth认证代码示例

    里面的一个项目有4个微博的OAuth代码示例,用Eclipse带ADT插件打开后,必须先把SystemConfig类的相应的常量改成你申请的相应微博的appKey和appSecret才能正常运行,本人亲测其中的腾讯微博部分。

    新浪、腾讯、网易、搜狐微博OAuth认证整合

    在本主题"新浪、腾讯、网易、搜狐微博OAuth认证整合"中,我们将探讨这四大中国主流社交媒体平台如何实现OAuth认证整合,以便第三方应用能安全地与这些微博服务进行交互。 1. **OAuth基本原理**:OAuth的核心是授权...

    新浪和腾讯微博Oauth认证Demo(php版)

    3./class/下,文件名中含有If的文件,定义的是接口.总计3个接口文件:各个网站的api访问路径...5.实例中2个网站(新浪微博和腾讯微博)的OAuth已经实现,并且通过验证。本例中的OAuth客户端来源于新浪微博OAuth认证SDK。

    新浪、腾讯、网易、搜狐微博OAuth认证整合Android版

    本项目是针对新浪、腾讯、网易、搜狐四大主流微博平台的OAuth认证整合,提供了详细的源码,有助于开发者理解和实现这一功能。 OAuth(开放授权)是一种授权协议,它允许第三方应用在用户的许可下,访问特定的资源,...

    OAUTH1.0腾讯登录与新浪微博登录

    在这个主题中,我们将深入理解OAuth 1.0在腾讯和新浪微博登录中的应用,以及如何使用Java进行实现。 OAuth 1.0的核心概念包括三个主要角色:资源所有者(用户)、客户端(第三方应用)和认证服务器(腾讯或新浪微博...

    Android 新浪、腾讯、网易、搜狐微博OAuth认证整合Android版.zip

    在Android应用开发中,接入第三方社交媒体平台如新浪、腾讯、网易和搜狐的微博服务,通常涉及到OAuth认证。OAuth(开放授权)是一种授权协议,允许应用在用户授权的情况下,获取访问特定资源的权限,而无需分享用户...

    OAuth2.0新浪微博简单示例

    这个“OAuth2.0新浪微博简单示例”是为初学者设计的,旨在帮助理解OAuth2.0的工作原理及其在实际应用中的实现方式,特别是与新浪微博的集成。 首先,我们来深入了解一下OAuth2.0的核心概念: 1. **客户端(Client...

    新浪以及腾讯微博绑定

    在移动应用开发中,将应用与社交媒体平台如新浪和腾讯微博进行绑定,是提升用户体验、增加用户参与度和分享功能的重要手段。本文将详细介绍如何在你的应用中实现新浪及腾讯微博的绑定,并讨论相关的技术要点。 一、...

    安卓开发-新浪、腾讯、网易、搜狐微博OAuth认证整合Android版.zip.zip

    在压缩包"安卓开发-新浪、腾讯、网易、搜狐微博OAuth认证整合Android版.zip"中,你将找到示例代码、配置文件和相关资源,这些可以帮助你理解并实现上述的OAuth认证过程。通过学习和实践,你将能够为你的Android应用...

    分享到新浪,腾讯微博

    【标题】:“分享到新浪,腾讯微博” 在互联网社交领域,分享内容到新浪和腾讯微博是一种常见的交流方式。这两个平台都是中国领先的社交媒体平台,让用户能够实时发布信息、观点和生活点滴,同时也支持与朋友们互动...

    安卓Android源码——新浪、腾讯、网易、搜狐微博OAuth认证整合版.zip

    这个"安卓Android源码——新浪、腾讯、网易、搜狐微博OAuth认证整合版.zip"压缩包提供了一个完整的解决方案,允许开发者通过OAuth认证方式实现与这四大微博平台的接口对接。OAuth是一种授权框架,它允许第三方应用...

    网易微博API OAUTH2.0

    **网易微博API OAUTH2.0** 在互联网应用开发中,授权是确保用户安全和数据隐私的关键环节。OAuth2.0是一种广泛采用的开放标准,用于授权第三方应用访问用户资源,而无需分享用户名和密码。网易微博提供的API,结合...

    新浪、腾讯微博,微信好友、朋友圈 分享

    本文将深入探讨如何实现新浪、腾讯微博以及微信的好友和朋友圈的分享功能,无需依赖第三方分享平台。 首先,我们关注的是标题提到的“新浪、腾讯微博,微信好友、朋友圈 分享”。这涉及到了三个主要的社交平台:...

    腾讯新浪微博分享

    总的来说,腾讯新浪微博分享功能的实现涉及到了社交网络API的使用、OAuth 2.0授权机制的理解以及客户端代码的编写。开发者需要对这些技术有一定的了解,才能确保分享功能的顺利集成和稳定运行。通过使用像...

    asp.net 腾讯微博新浪微博帐号登录 授权

    在ASP.NET开发中,集成第三方社交媒体登录功能,如腾讯微博和新浪微博,是提高用户体验和方便用户注册的重要方式。本文将详细讲解如何在ASP.NET项目中实现腾讯微博和新浪微博的账号授权登录。 首先,我们需要理解...

    OAuth2认证之新浪微博

    新浪微博是中国一个非常流行的社交媒体平台,它也采用了OAuth2协议来允许开发者构建的应用程序能够安全地与微博平台进行交互。 OAuth2的基本流程包括四个角色:资源所有者(User)、客户端(Client)、认证服务器...

    新浪腾讯微博oauth2.0登录授权及转发实例

    本教程将深入讲解如何使用新浪和腾讯微博的OAuth2.0实现用户登录授权以及内容的转发功能。 1. OAuth2.0基础概念 OAuth2.0的核心是授权流程,涉及四个角色:资源所有者(User)、资源服务器(Resource Server)、...

Global site tag (gtag.js) - Google Analytics