网站接入QQ登录的两种方法


Posted in Javascript onJuly 22, 2014

首先引入授权js文件

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

然后接入QQ登录

第一种使用系统自带按钮登录,但是这样会弹出新窗口,不喜欢 
//调用QC.Login方法,指定btnId参数将按钮绑定在容器节点中 
QC.Login({ 
//btnId:插入按钮的节点id,必选 
btnId:"qqLoginBtn", 
//用户需要确认的scope授权项,可选,默认all 
scope:"all", 
//按钮尺寸,可用值[A_XL| A_L| A_M| A_S| B_M| B_S| C_S],可选,默认B_S 
size: "B_M" 
}, function(reqData, opts){//登录成功 
console.log(reqData, opts); 
//根据返回数据,更换按钮显示状态方法 
var dom = document.getElementById(opts['btnId']), 
_logoutTemplate=[ 
//头像 
'<span><img src="{figureurl}" class="{size_key}"/></span>', 
//昵称 
'<span>{nickname}</span>', 
//退出 
'<span><a href="javascript:QC.Login.signOut();" rel="external nofollow" >退出</a></span>' 
].join(""); 
dom && (dom.innerHTML = QC.String.format(_logoutTemplate, { 
nickname : QC.String.escHTML(reqData.nickname), //做xss过滤 
figureurl : reqData.figureurl 
})); 
}, function(opts){//注销成功 
alert('QQ登录 注销成功'); 
}); 

第二种,使用自定义按钮<a>标签链接过去,然后成功后调用这个地址,a标签的href可以参考第一种window.location 
QC.api("get_user_info", {}) 
//指定接口访问成功的接收函数,s为成功返回Response对象 
.success(function(s){ 
console.log(s); 
//成功回调,通过s.data获取OpenAPI的返回数据 
alert("获取用户信息成功!当前用户昵称为:"+s.data.nickname); 
}) 
//指定接口访问失败的接收函数,f为失败返回Response对象 
.error(function(f){ 
//失败回调 
alert("获取用户信息失败!"); 
}) 
//指定接口完成请求后的接收函数,c为完成请求返回Response对象 
.complete(function(c){ 
//完成请求回调 
alert("获取用户信息完成!"); 
}); 

//检查是否登录 
if(QC.Login.check()){//如果已登录 
QC.Login.getMe(function(openId, accessToken){ 
alert(["当前登录用户的", "openId为:"+openId, "accessToken为:"+accessToken].join("\n")); 
}); 
//这里可以调用自己的保存接口 
//... 
}
Javascript 相关文章推荐
使用js获取QueryString的方法小结
Feb 28 Javascript
javascript函数作用域学习示例(js作用域)
Jan 13 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
Jan 01 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
Dec 07 Javascript
javascript trie前缀树的示例
Jan 29 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
Sep 28 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
Apr 21 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
Nov 01 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
Nov 24 Javascript
基于ajax实现上传图片代码示例解析
Dec 03 Javascript
防止登录页面出现在frame中js代码
Jul 22 #Javascript
一个支付页面DEMO附截图
Jul 22 #Javascript
一个仿糯米弹框效果demo
Jul 22 #Javascript
Jquery节点遍历next与nextAll方法使用示例
Jul 22 #Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
Jul 21 #Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
Jul 21 #Javascript
关于jQuery判断元素是否存在的问题示例探讨
Jul 21 #Javascript
You might like
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
php防止网站被刷新的方法汇总
2014/12/01 PHP
Symfony控制层深入详解
2016/03/17 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
bootstrap table动态加载数据示例代码
2017/03/25 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
对python的文件内注释 help注释方法
2018/05/23 Python
python递归法解决棋盘分割问题
2019/07/17 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
python重要函数eval多种用法解析
2020/01/14 Python
什么是python的id函数
2020/06/11 Python
python 星号(*)的多种用途
2020/09/21 Python
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
计算机网络及管理学专业求职信
2014/06/05 职场文书
陈胜吴广起义口号
2014/06/20 职场文书
财务人员岗位职责
2015/02/03 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
老员工辞职信范文
2015/05/12 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
Mysql忘记密码解决方法
2022/02/12 MySQL