1 第一种使用系统自带按钮登录,但是这样会弹出新窗口,不喜欢
2 //调用QC.Login方法,指定btnId参数将按钮绑定在容器节点中
3 QC.Login({
4 //btnId:插入按钮的节点id,必选
5 btnId:"qqLoginBtn",
6 //用户需要确认的scope授权项,可选,默认all
7 scope:"all",
8 //按钮尺寸,可用值[A_XL| A_L| A_M| A_S| B_M| B_S| C_S],可选,默认B_S
9 size: "B_M"
10 }, function(reqData, opts){//登录成功
11 console.log(reqData, opts);
12 //根据返回数据,更换按钮显示状态方法
13 var dom = document.getElementById(opts['btnId']),
14 _logoutTemplate=[
15 //头像
16 '<span><img src="{figureurl}" class="{size_key}"/></span>',
17 //昵称
18 '<span>{nickname}</span>',
19 //退出
20 '<span><a href="javascript:QC.Login.signOut();" rel="external nofollow" >退出</a></span>'
21 ].join("");
22 dom && (dom.innerHTML = QC.String.format(_logoutTemplate, {
23 nickname : QC.String.escHTML(reqData.nickname), //做xss过滤
24 figureurl : reqData.figureurl
25 }));
26 }, function(opts){//注销成功
27 alert('QQ登录 注销成功');
28 });
29
30 第二种,使用自定义按钮<a>标签链接过去,然后成功后调用这个地址,a标签的href可以参考第一种window.location
31 QC.api("get_user_info", {})
32 //指定接口访问成功的接收函数,s为成功返回Response对象
33 .success(function(s){
34 console.log(s);
35 //成功回调,通过s.data获取OpenAPI的返回数据
36 alert("获取用户信息成功!当前用户昵称为:"+s.data.nickname);
37 })
38 //指定接口访问失败的接收函数,f为失败返回Response对象
39 .error(function(f){
40 //失败回调
41 alert("获取用户信息失败!");
42 })
43 //指定接口完成请求后的接收函数,c为完成请求返回Response对象
44 .complete(function(c){
45 //完成请求回调
46 alert("获取用户信息完成!");
47 });
48
49 //检查是否登录
50 if(QC.Login.check()){//如果已登录
51 QC.Login.getMe(function(openId, accessToken){
52 alert(["当前登录用户的", "openId为:"+openId, "accessToken为:"+accessToken].join("\n"));
53 });
54 //这里可以调用自己的保存接口
55 //...
56 }