QQ账号登陆的Ruby实现

标签: qq 登陆 ruby | 发表时间:2011-05-23 11:03 | 作者:(author unknown) RobinWu
出处:http://lmxbitihero.iteye.com

腾讯公司最近开放了QQ登陆,这对广大站长是个好消息,从此实现QQ账号登陆您的网站不再是梦想。但是遍寻腾讯的SDK文档,并不见Ruby的实现,这对Ruby爱好者可不是个好消息。经过好几天的摸索,我终于成功实现了QQ登陆了。下面把代码贴出来。

 

首先要安装oauth

gem install oauth

 

写上配置信息

CONSUMER_OPTIONS = {

        :site => "http://openapi.qzone.qq.com",

        :request_token_path => "/oauth/qzoneoauth_request_token",

        :access_token_path => "/oauth/qzoneoauth_access_token",

        :authorize_path => "/oauth/qzoneoauth_authorize",

        :http_method => :get,

        :scheme => :query_string,        

        :nonce => Base64.encode64(OpenSSL::Random.random_bytes(32)).gsub(/\W/, '')[0, 32] }

 

  QQ_KEY = ×××

  QQ_SECRET = '×××××××××××××××××××××××××××××'

 

其中,QQ_KEY和QQ_SECRET换上你们自己的。

 

 

#第一个方法

def login_from_qq

    consumer = OAuth::Consumer.new(QQ_KEY, QQ_SECRET, CONSUMER_OPTIONS)

    request_token = consumer.get_request_token()

    session[:qqtoken] = request_token.token

    session[:qqsecret] = request_token.secret

 

 

    redirect_to request_token.authorize_url + "&oauth_consumer_key=205799&oauth_callback=http%3A%2F%2Flocalhost:3000%2Faccount%2Flogin_from_qq_callback"

  end

 

#用户点击授权后,调用回调方法

def login_from_qq_callback

  consumer = OAuth::Consumer.new(QQ_KEY, QQ_SECRET, CONSUMER_OPTIONS)

    request_token = ::OAuth::RequestToken.new(consumer, session[:qqtoken], session[:qqsecret])

    access_token = request_token.get_access_token(:oauth_vericode => params[:oauth_vericode])

 

   response = access_token.get("/user/get_user_info?openid=#{params[:openid]}")

     return_hash = ActiveSupport::JSON.decode(response.body)

     nickname        = User.find_by_name(return_hash["nickname"])

....

end

 

腾讯的接口有一个参数名字比较怪异,别人都叫做:oauth_verifier,他偏要叫做:oauth_vericode,这要进行一个oauth gem库的crack,进入ruby的gem路径,打开/oauth-0.4.4/lib/oauth/client/helper.rb文件,在oauth_parameters方法下加上一行代码,例如:

'oauth_verifier'         => options[:oauth_verifier],

        'oauth_vericode'         => options[:oauth_vericode],

然后重启ROR服务,后端代码就算写好了。前端网页加上一个qq登陆的图片,链接到login_from_qq。这样,QQ登陆就算是做好了。

另外,QQ登陆虽然是不需要审核的,但是如果需要把网站信息同步到用户的qzone中去,需要更多接口权限,这需要经过腾讯审核。


已有 1 人发表留言,猛击->>这里<<-参与讨论


ITeye推荐



相关 [qq 登陆 ruby] 推荐:

QQ账号登陆的Ruby实现

- RobinWu - 致力于ROR走入企业开发
腾讯公司最近开放了QQ登陆,这对广大站长是个好消息,从此实现QQ账号登陆您的网站不再是梦想. 但是遍寻腾讯的SDK文档,并不见Ruby的实现,这对Ruby爱好者可不是个好消息. 经过好几天的摸索,我终于成功实现了QQ登陆了. 其中,QQ_KEY和QQ_SECRET换上你们自己的. #用户点击授权后,调用回调方法.

j2ee中实现QQ第三方登陆

- - CSDN博客Web前端推荐文章
最近接触了一些第三方登陆的东西,弄的真是一个头,两个大>.<. 今天,终于把腾讯第三方登陆调试通了,做一个记录,顺便发发牢骚. QQ互联官网: http://connect.qq.com/. 申请之类的就不多说了,没什么难点,主要记录一下代码方面的东西. 看官方文档的时候写的太详细,太复杂了. 由于项目中用的是自定义的图标,所以没有用Js SDK(后来才知道好像官方的js SDK也可以自定义图标).

你还在用键盘登QQ?看看楼下超市大妈超强登陆QQ法

- Prince Brightflame - 囧囧囧 – Mtime时光网

了解Ruby Gems

- Jacky - Reborn
所谓RubyGem,就是一个个软件包,通常被简称为“gem”. 通常一个Gem里包含一个Ruby应用程序或者一个Ruby程序库. 而RubyGems软件本身允许用户在自己的系统中轻松地下载、安装、操作Gems. 以下两个网址无论如何都应该放到自己的收藏夹里:. 最著名的Gem之一,当然是Rails——当我们安装Rails的时候,使用的命令行是:.

开始Ruby

- TheLover_Z - 博客园-首页原创精华区
我的上一篇为什么要学动态语言和大家分享了一些心得,如果有人因此想试试动态语言,哪怕是一点点,我也很高兴,毕竟自己写的东西还有点意义. 俗话说,万事开头难,但是开始用动态语言一点也不难,还是以ruby为例. 1.首先来看看这个网站, http://tryruby.org/. 顾名思义,这个网站的目的就是让大家试试Ruby,我觉得做的比较好的就是它有一步步的教程,只要照着它的提示一步步往下,就能领略Ruby的魅力.

Ruby On Rails 4 hello world,Ruby On Rails上手

- - CSDN博客Web前端推荐文章
有机会再试一试Rails了,只是原来接触的是2,现在已然变成了4,似乎现在的安装比原来会快些. 似乎这就是当前的最新版本. 似乎这就是诸如Django、Rails这类对于轻量级网站的数据库要求. 其他可以看情况安装,如openSUSE. 可以直接用rails生成. 这样的话打开  http://localhost:3000 就可以看到,Rails的欢迎界面Welcome aboard,有点类似于Django-CMS的小马哥~~.

安装rails(ruby on rails)

- - BlogJava_首页
  记得两年前使用ror做网站,自动生成功能记忆犹新,只是当时网络知识实在缺乏,体会不到其中的乐趣. 现在了解的很多了,书也有两本,一直想重新体验最新版做个网站. 安装这个过程实在有点坑爹,查找网上若干ror的书包括2012年版的书,按照上面的步骤都没法安装完成,搞得我一会在linux下试验,一会在windows下试验,都没成功,只好放下.

Ruby视频资料清单

- Shu. Wang - 欧阳的技术笔记
斯坦福Ruby与Rails进行Web开发的开放课程. 通俗易懂,不过其中课程使用的Rails版本是2.3. 同时,本课程配合斯坦福系列开发课程,是非常好的自学材料. lynda公司出品的rails3基础教程. 绝对通俗易懂,视频拆分方式很适合等人时间阅读. 并不支持Rails3.1,是Rails3.0.

QQ表情 for iPad

- 小趴 八足趴 八足 ramener - 腾讯CDC
  QQ HD for iPad 2.2已经发布了~其中全新的高清QQ表情也跟大家见面了.   在这里奉上新表情的安装包同时还有赠品哟亲~.   QQ HD for iPad 2.2 表情菜单效果图.   QQ表情for iPad.   表情安装包在附件中~希望大家喜欢~.   QQ HD for iPad 2.2 表情安装包 下载.

我的PHP,Python和Ruby之路

- heely - robbin的自言自语
因为看到一篇讨论PHP,Python和Ruby的编程语言讨论贴,就说说我的PHP,Python和Ruby之路吧:. 我2000-2001年用PHP用了两年,那还是第一次互联网泡沫时期,到2001年后期,Servlet/JSP流行,然后我就发现:你说用PHP写的东西,都会被人鄙视. 当时我们其实也用Java了,只不过用Java写后端的消息队列.