同上,小弟是第一次做第三登陆对接,Token和OpenID已经有了,但是在本地调试的时候,开始还能获得用户信息,后来只弹出登录框点击登录就没反应了,哪位高手有完整的代码借小弟参考下吗?
直接复制QQ提供的代码:<span id="qqLoginBtn"></span>
<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: "A_XL"
}, 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){//注销成功
alert('QQ登录 注销成功'); }
);
</script>
直接复制QQ提供的代码:<span id="qqLoginBtn"></span>
<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: "A_XL"
}, 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){//注销成功
alert('QQ登录 注销成功'); }
);
</script>
<!-- 腾讯QQjs连接地址-->
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="你的appkey" data-redirecturi="你的回掉地址" 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>
<span id="qqLoginBtn"></span>
js中:
//腾讯开放平台API文档参考:http://wiki.open.qq.com/wiki/website/JS_SDK%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
//腾讯接口调用示例http://connect.qq.com/intro/login/jssdk-demo
QC.Login({
btnId: "qqLoginBtn" //插入按钮的节点id
});
//openId:用户身份的唯一标识。保存在本地,以便用户下次登录时可对应到其之前的身份信息,不需要重新授权。
//accessToken:表示当前用户在此网站/应用的登录状态与授权信息,保存在本地。 //QC.Login.getMe(function (openId, accessToken) {
// // 无法获取到QQ号码 openId唯一标示// //需要保存用户信息
//})var paras = {};
QC.api("get_user_info", paras)
//指定接口访问成功的接收函数,s为成功返回Response对象
.success(function (s) {
//成功回调,通过s.data获取OpenAPI的返回数据
//获取用户昵称
var nick = s.data.nickname;
//用户登录QQ时隐藏新浪登陆接口
$("#tx").show();
$("#wb_connect_btn").hide();
alert("用户昵称"+nick);
})
//指定接口访问失败的接收函数,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"));
});
//这里可以调用自己的保存接口
//...
} //用JS SDK调用OpenAPI 获取用户信息
QC.Login.signOut()
{
$("#tx").show();
$("#wb_connect_btn").show();
}