`
duninet
  • 浏览: 2189 次
文章分类
社区版块
存档分类
最新评论

QQ登录官方JS SDK版

    博客分类:
  • JS
阅读更多

JS
1、把注册获得的APPID、redirect地址写入下面对应的地方,放到登录页JS位置
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="100283211" data-redirecturi="http://www.javapk.net/login.htm?passed=3232" charset="utf-8"></script>
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" charset="utf-8" data-callback="true"></script>

2、放置QQ登录按钮,把这段代码放到HTML页面中
<span id="qqLoginBtn" title="使用QQ快速登录,只需一步!"></span>-->
<a href='https://graph.qq.com/oauth2.0/authorize?client_id=100283211&response_type=token&scope=all&redirect_uri=http%3A%2F%2Fwww.taobide.com%2Flogin.htm%3Fpassed%3D3232'><img border="0" alt="QQ登录" src="../images/qq_widget_connect.png"></img></a>
<script type="text/javascript">
   //调用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){//登录成功
    //根据返回数据,更换按钮显示状态方法
   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();">退出</a></span>'
   ].join("");
     dom && (dom.innerHTML = QC.String.format(_logoutTemplate, {
      nickname : QC.String.escHTML(reqData.nickname),
     figureurl : reqData.figureurl
    }));
  }, function(opts){//注销成功
  var msg="嗯嗯,希望下次再看到你的光临哦!";
alert(msg);
    }
);
*/
</script>

3、调用QQ登录API(JS SDK)

<script type="text/javascript">
if(document.location.search.indexOf('signout_qq')>=0){
 setTimeout(function(){
 QC.Login.signOut();
 alert('QQ登录,退出成功');
 }, 800)
}
 //从页面收集OpenAPI必要的参数。get_user_info不需要输入参数,因此paras中没有参数
var paras = {};
 //用JS SDK调用OpenAPI
 QC.api("get_user_info", paras)
 //指定接口访问成功的接收函数,s为成功返回Response对象
.success(function(s){
 //成功回调,通过s.data获取OpenAPI的返回数据
    QC.Login.getMe(function(openId, accessToken){
 qq_Login(s,openId,accessToken);
 })
 })
 //指定接口访问失败的接收函数,f为失败返回Response对象
.error(function(f){
 //失败回调
qq_error(f);
 })
 //指定接口完成请求后的接收函数,c为完成请求返回Response对象
.complete(function(c){
 //完成请求回调
// qq_complete(c);
 });

</script>

 

4、向后台发送请求,把请求URL和参数换成自己的就可以了,逻辑可以
/**
* QQ登录
* @author zhangbing
* @param s
* @param openId
* @param accessToken
* @date 2012-06-26
*/
function qq_Login(s,openId,accessToken){
//把openId,accessToken存入Cookie中
addCookie("qq_openId",openId,90);
addCookie("qq_accessToken",accessToken,90);

//判断性别
var sex=0;
if(s.data.gender=="女"){
sex=1;
}else{
sex=0;
}
//向后台发送数据
if(getCookie("qq_openId")=="" || getCookie("qq_openId")==null){ //如果Cookie里面没有保存openId,则传入新openId
$.post(
"login.htm",
{
'passed':'qqLogin',
'openId':openId,
'accessToKen':accessToken,
'nickname':s.data.nickname,
'figureurl_1':s.data.figureurl_1,
'figureurl_2':s.data.figureurl_2,
'sex':sex,
'vip':s.data.vip
},
function(result){
loginBackUrl(result);
});
}else{ //如有Cookie里面有openId,则直接引用Cookie里面的openId
$.post(
"login.htm",
{
'passed':'qqLogin',
'openId':getCookie("qq_openId"),
'accessToKen':getCookie("qq_accessToken"),
'nickname':s.data.nickname,
'figureurl_1':s.data.figureurl_1,
'figureurl_2':s.data.figureurl_2,
'sex':sex,
'vip':s.data.vip
},
function(result){
loginBackUrl(result);
});
}
}
//返回上一次操作URL
function loginBackUrl(data){
if(data.length>0&&data.length<=500){
if(data=="/"){
location.href="/";
return;
}
if(data=="/mypage.htm"){
location.href = "/mypage.htm";
}
if(data=="/regist.htm"){
location.href="/";
}
location.href=data;
}else{
alert("登录出错啦,请重新登陆!");
//QC.Login.signOut();
}
}

//完成请求回调
function qq_complete(c){
if(c.ret==0){
alert("完成请求回调!");
// window.parent.location.href   =   window.opener.location.href
// window.close();
}else{
alert("指定接口访问成功,但请求回调失败!");
}
}

function qq_error(f){
alert("出错了");
}

java
public void onPost(){
new BackurlUtil().setBackurl(hreq, "tag=spy");
try {
appDomain = wlUtil.getAppProperty("AppDomain");
if(passed.equals("userLogin")){//如果是淘必得登录
wisher = wlUtil.checkLi555User(emailaddress, loginpassword);
session.setAttribute("wisher", wisher);
if(wisher!=null){
//登录成功
try {
DESPlus des = new DESPlus("li555");
//登录成功后,加密,保存入cookie
helloLi555CK = new Cookie("Helloli555CK", des.encrypt(emailaddress +'#'+ loginpassword));
session.setAttribute("username",emailaddress);
helloLi555CK.setMaxAge(5184000);
helloLi555CK.setPath("/");
hrep.addCookie(helloLi555CK);
if (baseurl.indexOf("login.htm")>=0) {
baseurl = "/";
}
msg = "({'backurl':'" + baseurl+"'," +
"'susuidCK':'"+wisher.getSnsUid()+"'," +
"'result':'LOGIN_SUCCESS'," +
"'renren_uid':'"+wisher.getWisherid()+"'," +
"'snstypeCK':'"+wisher.getSnsType()+"'})";

} catch (Exception e) {
msg = "({'result':'LOGIN_FAIL"+e+"'})";
e.printStackTrace();
}
Json.outPut(hrep, msg);
}
} else if(passed.equals("qqLogin")){ //如果是QQ登录
QQUser qqUser=new QQUser();

qqUser.setQQUid(openId);
qqUser.setName(nickname);
qqUser.setSex(sex);
qqUser.setVip(vip);
qqUser.setTinyurl(figureurl_1);
qqUser.setMainurl(figureurl_2);
wisher=wlUtil.checkQQUser(qqUser,"");

wisherId = wisher.getWisherid();
session.setAttribute("wisher",wisher);
uidCK = new Cookie("qq_uid", wisherId);
uidCK.setMaxAge(5184000);
hrep.addCookie(uidCK);

//判断上一次请求的URL
BackurlUtil url=new BackurlUtil();
String backurl=url.getBackurl(hreq, "/");
backurl = (String) session.getAttribute("backurl");
if (backurl.indexOf("login.htm")>=0){
backurl = baseurl;
}else{
backurl = backurl.replaceAll(appDomain+"/", "");
}
if(backurl!=""){
Json.outPut(hrep, backurl);
}
}
} catch(Exception e){
}
}

 

 

分享到:
评论

相关推荐

    QQ js-sdk第三方授权登录 自定义登录按钮

    QQ JS-SDK是腾讯提供的一套JavaScript接口库,允许开发者在网页上集成QQ账号的登录、分享等功能,极大地提高了用户体验。 首先,我们需要了解QQ JS-SDK的基本使用。在引入SDK后,需要进行初始化配置,这通常包括...

    quick-game-sdk 快游戏SDK 小游戏SDK JS-SDK

    这个JS-SDK尤其专注于微信小游戏和QQ小游戏的开发,同时也支持OPPO快游戏,并且未来可能增加更多平台的支持。通过使用这样的SDK,开发者可以有效地减少代码重复编写,提高开发效率,同时确保游戏能够在多个平台上...

    微信JS-SDK 实例源代码 ASP版

    微信JS-SDK 实例源代码 ASP版 主程序全部在,适当修改即可

    仿QQ登录列表

    在实现第三方登录时,如微信、微博或谷歌账号,开发者需要集成相应的SDK(软件开发工具包)或者利用OAuth协议。这些服务提供API接口,允许用户使用已有的社交账号快速登录,简化注册和登录流程。 最后,考虑到移动...

    微信JS-SDK接口JS文件 jweixin-1.4.0.js

    所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState...

    h5页面百度分享sdk,可分享到QQ,微信,微博

    百度分享SDK是百度提供的一款JavaScript库,它允许开发者在H5页面上添加一键分享功能,支持多种社交媒体平台。通过调用SDK提供的API,我们可以轻松地实现在网页上添加分享按钮,并自定义分享的内容和样式。 集成...

    Android webview QQ一键登录并向后台返回参数

    在Android开发中,WebviewQQ登录是一种常见的社交登录方式,它允许用户通过内置的WebView组件直接使用QQ账号进行登录,并将登录后的参数回传给应用的后台系统。这种方式简化了用户的登录流程,提高了用户体验,同时...

    js 右键弹出QQ在线客服代码,点击右键查看效果,兼容主流浏览器

    QQ在线客服通常会提供一个iframe或者JavaScript SDK供开发者集成。使用JavaScript,我们可以创建一个新的DOM元素(如div),并将其样式设置为浮层,然后在其中嵌入QQ客服的HTML代码。例如: ```javascript function...

    腾讯QQ登陆SDK(ASP) v1.1.rar

    腾讯官方只给出了php/jsp/.net的QQ登录SDK,本SDK由周子铺制作,适用于ASP网站。 v1.1更新:文件整合,原本不想vbscript和javascript混写,为了美观及节省空间,整合了。

    C#、js如何调用qq互联api实现第三方登录

    本资源主要关注如何通过C#和JavaScript这两种编程语言调用QQ互联API来实现第三方登录功能。 首先,我们要了解QQ互联API的基础知识。QQ互联是由腾讯提供的开放平台,它为开发者提供了接口,使得外部应用可以集成QQ...

    js_sdk.zip

    尽管uni-app自身并不直接支持加密功能,但可以通过引入自定义的JavaScript库或插件来扩展其功能,例如这里的js_sdk,就是这样的一个扩展工具。 rsa加密技术,全称为Rivest-Shamir-Adleman,是一种公钥加密技术。它...

    QQ频道机器人 NODESDK-bot-node-sdk.zip

    QQ频道机器人NODESDK是腾讯为开发者提供的一种基于Node.js的SDK,用于构建和管理QQ频道中的机器人应用。这个ZIP文件“QQ频道机器人 NODESDK-bot-node-sdk.zip”包含了开发QQ频道机器人的核心模块和示例代码,帮助...

    qq浮动客服js和文件

    1. `qq浮动能效.js`:这是一个JavaScript文件,包含了处理浮动效果和与QQ客服系统交互的逻辑。它可能会定义函数来处理页面滚动事件,调整客服窗口的位置,并与QQ服务器通信以启动客服对话。 2. `qq客服样式.css`:...

    ASP QQ登陆整合 SDK qqoauth2 v1.0.zip

    - 在需要调用QQ登录的页面,引入SDK的相关JavaScript和CSS资源。 - 实现登录按钮的点击事件,引导用户跳转到QQ授权页面。 - 用户授权后,QQ服务器会回调预先设置的回调地址,此时需要处理回调请求,获取授权码并...

    基于ASP的腾讯QQ登陆SDK v1.1.zip

    【ASP与腾讯QQ登录SDK v1.1简介】 ASP(Active Server Pages)是微软开发的一种服务器端脚本环境,主要用于创建动态网页应用。它允许开发者使用脚本语言(如VBScript或JScript)在服务器端处理数据并生成HTML,从而...

    ASP版微信JS-SDK代码

    把appid和SECRET改成自己的,调试时把debug:false改成debug:true,想免费使用发我邮箱1003521946@qq.com

    java qq第三方登陆

    SDK4J是腾讯官方为Java开发者提供的QQ登录SDK,用于简化与QQ开放平台接口的交互。`Sdk4J.jar`是这个SDK的核心库,包含了所有与QQ登录相关的类和方法。开发者需要将这个库引入到自己的项目中,以便调用QQ登录功能。 ...

    Javascript 实现微信分享(QQ、朋友圈、分享给朋友)

    最近做微信开发,对微信公众号的开发,现在好的都是分享到朋友圈,QQ,分享给好友等分享功能,这里记录下,有需要的朋友也可以看下。 // 微信分享 var wx = require('wechat-sdk'); rewardsResultService....

    QQ-JSSDK登录示例

    `qq.js`则是包含QQ-JSSDK核心代码的JavaScript文件,其中包含了初始化SDK、设置应用配置、监听登录状态变化以及处理登录成功后的回调函数。开发者需要在网页加载完成后,调用JSSDK的`QQ.connect`方法来初始化SDK,并...

Global site tag (gtag.js) - Google Analytics