利用JS_SDK实现QQ第三方登录

前言

现如今,第三方登录已成为大部分网站必备的一项基础技能,引入时髦的第三方登录不仅能帮你吸引更多的用户,也让你的网站可以充分利用其他大型网站的用户资源。本次教程将让你的网站最快捷便利地引入QQ登录。

QQ第三方登录目前提供了JS SDK功能,这也是目前最简单直接的接入QQ互联的方式,没有之一。下面我将通过简单的几步轻松地让你的网站接入QQ登录。

准备工作

在正式接入之前你需要了解以下名词的含义:

1. appid :应用的唯一标识。在OAuth2.0认证过程中,appid的值即为oauth_consumer_key的值。

2. appkey:appid对应的密钥,访问用户资源时用来验证应用的合法性。在OAuth2.0认证过程中,appkey的值即为oauth_consumer_secret的值。

3. redirecturl:成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心。注意需要将url进行URLEncode。

4. access token:用来判断用户在本网站上的登录状态,具有3个月有效期,用户再次登录时自动刷新。

5. openid:是此网站上唯一对应用户身份的标识,网站可将此ID进行存储便于用户下次登录时辨识其身份,或将其与用户在网站上的原有帐号进行绑定。

第一步

要接入QQ登录,必不可少的是appid和appkey,通过申请接入QQ登录,按照相应步骤操作即可轻松获得,在此不做赘述。

第二步

在需要放置QQ登录按钮的页面加入下面SCRIPT代码:

<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="APPID" data-redirecturi="REDIRECTURI" charset="utf-8"></script>

PS:APPID 和 REDIRECTURI 换成第一步申请所得到的对应内容,REDIRECTURI 就是登录之后返回的回调地址,在申请页面自己填写,一般写网站主域名即可。注意:回调地址必须以http或https开头。

第三步

在页面放置一个元素节点用来展现登录按钮,并且指定其ID,如:

<div id="qq"></div>

然后在页面加入如下SCRIPT:

<script type="text/javascript">

QC.Login({

btnId:"qq"    //插入按钮的节点id

});

</script>

这时你就可以在页面看到如下效果:

如何你对这个展示效果不满意,也可以自定义登录按钮

第四步

在  REDIRECTURI 即回调地址页面加入如下SCRIPT:

<script type="text/javascript"

src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" charset="utf-8" data-callback="true"></script>

PS:官方说法如果回调地址页与加入QQ登录按钮是同一个页面,则只需要引用一次脚本文件。如果你理解不了这种官方说法,可以在第一步的脚本中加入data-callback="true"属性,而忽略第四步,前提是回调地址页与加入QQ登录按钮的页面是同一个页面。

第五步

因为JS SDK封装了获取Access Token以及OpenID的方法,因此开发者不需要用开发代码进行获取,直接调用QQ登录OpenAPI即可。

调用OpenAPI时,请统一遵循下述调用方式:

QC.api(api, paras, fmt, method)

参数说明:

参数名称 是否必须 描述
api 必须 指定要调用的OpenAPI名称。例如:调用add_t时,OpenAPI名称为“add_t”。 
各OpenAPI的名称具体请参见API列表。
paras 必须 指定要调用的OpenAPI对应的参数。各参数使用JSON的键值对格式列出。 
OpenAPI对应的参数具体请参见API列表中各OpenAPI的参数说明。
注意:此处参数不需要自行传递access_token与openid
fmt 可选 指定OpenAPI的返回格式,可用值为“json”或“xml”。默认为“json”。 
注意:json、xml为小写,否则将不识别。
method 可选 指定OpenAPI调用请求的发起方式,可用值为“GET”或“POST”。根据配置,默认发送数据为“POST”,获取数据为“GET”。

最后

提供一种代码接入思路,仅供参考:

QC.api("get_user_info", {}) //get_user_info是API参数

//指定接口访问成功的接收函数,s为成功返回Response对象

.success(function (s) {

//成功回调,通过s.data获取OpenAPI的返回数据

nick = s.data.nickname; //获得昵称

headurl = s.data.figureurl_qq_1; //获得头像

if (QC.Login.check()) {//判断是否登录

QC.Login.getMe(function (openId, accessToken) { //这里可以得到openId和accessToken

//下面可以调用自己的保存方法

……

});

}

})

//指定接口访问失败的接收函数,f为失败返回Response对象

.error(function (f) {

//失败回调

alert("获取用户信息失败!");

});

////指定接口完成请求后的接收函数,c为完成请求返回Response对象

//.complete(function (c) {

//    //完成请求回调

//    alert("获取用户信息完成!");

//});

结束语

如果按照上述步骤操作后得不到你需要的用户信息,别担心,刷新下页面可能会有意想不到的惊喜哦。这是因为你在本地测试和你在申请时填的回调地址不匹配造成的,真正上线之后就没有问题了。

最后希望本次教程对大家有点帮助和启发。

本文原创自我爱学框架,欢迎转载,请保留原文链接!

原文链接:http://www.itframe.top/Detail/Index/article/eed968bd-a64a-47d3-b9cf-40291bdcc7be.html

时间: 2024-10-25 10:03:00

利用JS_SDK实现QQ第三方登录的相关文章

javaEE SSH框架 qq第三方登录及用户绑定

前几天刚申请好域名,下面实现网站的qq第三方登录的功能,javaEE的SSH框架.(一些细节问题没有处理,只是大体上实现) 一:首先说一下需求,第一次使用qq第三方登录的用户需要绑定已有的网站用户名,绑定成功后进入首页.以后再使用qq第三方登录就直接进入网站首页. 二:要想使用qq第三方首先需要申请应用(需要有自己的域名) (1)登录qq互联网站申请应用,http://connect.qq.com/ (2)创建应用 (3)创建好之后还是可以修改的,这里回调地址我用的是域名+back.jsp界面(

QQ第三方登录

QQ第三方登录 在Android应用程序的开发过程中,很多时候需要加入用户登录/注册模块.除了自己动手设计登录界面并实现相应功能外,现在还可以借助百度.腾讯等开发者平台提供的第三方账号登录模块.最近研究了友盟的社会化分享组件,对其提供的SDK中第三方登录的QQ模块进行了测试.本篇文章先对友盟用户注册.SDK下载及案例的下载做一个简单的介绍,然后针对测试程序的过程及代码进行详细的描述. 顺便提一点,进入友盟的主页及SDK下载页面之后,会发现其支持Android.IOS等多个环境下的应用程序开发,感

Android应用之最新版本SDKV2.4实现QQ第三方登录

为什么要写这篇博客呢?因为,我在做这个第三方登录的时候,找了很多资料,发现要么就是过时了,要么就是说的很不清楚,很罗嗦,而且很多都是一些小 demo,不是什么实例,甚至连腾讯官方的文档都有这个问题,文档中很多地方用的不是最新的sdk写的示例,用最新版本的sdk发现根本没法达到预期的效 果,很多api已经发生了变化,demo还是用的原来的api中的方法,最坑爹是demo下载下来还要一个支持的库文件,但是sdk中又没有提供.. 自己跌跌撞撞,查找资料,整合,弄了几个小时,终于把它给整出来了,用在了开

Android应用之——最新版本SDK V2.4实现QQ第三方登录

为什么要写这篇博客呢?因为,我在做这个第三方登录的时候,找了很多资料,发现要么就是过时了,要么就是说的很不清楚,很罗嗦,而且很多都是一些小demo,不是什么实例,甚至连腾讯官方的文档都有这个问题,文档中很多地方用的不是最新的sdk写的示例,用最新版本的sdk发现根本没法达到预期的效果,很多api已经发生了变化,demo还是用的原来的api中的方法,最坑爹是demo下载下来还要一个支持的库文件,但是sdk中又没有提供.. 自己跌跌撞撞,查找资料,整合,弄了几个小时,终于把它给整出来了,用在了开发的

利用phantomjs模拟QQ自动登录

之前为了抓取兴趣部落里的数据,研究了下QQ自动登录. 当时搜索了一番,发现大部分方法都已经失效了,于是准备自己开搞. 第一个想到的就是参考网上已有方案的做法,梳理登陆js的实现,通过其他语言重写.考虑到js可能会更新,放弃了此方案. 第二个想到的是能不能直接调用QQ自己的js方法,模拟进行提交呢.搜索一番后发现神器 ---- "phantomjs". PhantomJS is a headless WebKit scriptable with a JavaScript API. It

Android 实现QQ第三方登录

在项目中需要实现QQ第三方登录,经过一番努力算是写出来了,现在总结以下,以防以后遗忘,能帮到其他童鞋就更好了. 首先肯定是去下载SDK和DEMO http://wiki.open.qq.com/wiki/mobile/SDK下载 本文是我自己整合后的简单DEMO. 先看下效果图吧 小码哥Html5教程,免费随你看 [点击进入] 24小时阅读30000+,48小时视频下载50000+ H5,JS,CSS,0基础学完独立开发网站/APP! 查 看 小码哥Html5教程,免费随你看 [点击进入] 24

javaEE SSH框架 qq第三方登录及用户绑定(java sdk版)

之前有位朋友用js sdk实现了 SSH框架下的qq第三方登录功能,但是我发现使用js sdk 有些无法克服的安全问题,所以我改用java sdk来实现这个功能! 如图,使用java sdk时,回调地址应设置为一个.action链接.(注意!修改回调地址的话,官方不会及时给你审核通过,有的人修改回调地址后一年 官方都没给他审核通过,这意味着[修改回调地址不如 要重新申请一个域名!重新申请一次网站接入]) 使用官方给定的Sdk4J.jar时 控制台会打印许多log信息,这严重影响项目的运行效率,所

使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样

使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样openid生成是根据应用的appid和QQ号的一些信息加密生成,对于一个appid和QQ号来说,openid是唯一的手机应用和网站应用使用的appid不是同一个,所以,获取到的openid也不会相同 那么问题来了同一个QQ,通过手机端第三方登录进去,和通过网站登录进去,因为openid不一样,会生成两个用户 解决方法: 给[email protected]发送邮件,内容格式: 第三方登录,web端返回的openi

QQ第三方登录demo

QQ第三方登录demo 最近使用第三方登录,QQ登录官方给的demo中类太多了,这里上传一个小demo,只有2个类,可以授权QQ进行第三方登录. 下载地址:http://www.devstore.cn/code/info/600.html 运行截图:   http://ds.devstore.cn/dev_store/user/souce_code/img/20150119160310177xjkim8dz/11111.png