首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

网站干QQ联合登陆js获取qq昵称的疑问

2013-07-04 
网站做QQ联合登陆js获取qq昵称的疑问我在做QQ联合登陆的时候,想通过js获取到QQ昵称存到数据库,为什么我总

网站做QQ联合登陆js获取qq昵称的疑问
我在做QQ联合登陆的时候,想通过js获取到QQ昵称存到数据库,为什么我总是获取不到QQ昵称呢,js不太熟悉,请高手帮忙,谢谢。


aspx文件


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" charset="utf-8" data-callback="true"></script>
    <script src="/js/qq.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <script type="text/javascript"> getToken()</script>
    </div>
    </form>
</body>
</html>


js文件

var arrqq = new Array(); 
arrqq[0] = "1"; 
arrqq[1] = "11";
arrqq[2] = "111";

function getnickname() {
    if (QC.Login.check()) {
        QC.api("get_user_info", paras)
    .success(function (s) {//成功回调
        alert("获取用户信息成功!当前用户昵称为:" + s.data.nickname);
        arrqq[2] = s.data.nickname;
        //return s.data.nickname;  
        alert(arrqq[2]);
    })
    .error(function (f) {//失败回调
        //alert("获取用户信息失败!");
    })
    .complete(function (c) {//完成请求回调
        //alert("获取用户信息完成!");
    });
    } else {
        alert("请登录后体验");
    }
}

function getToken() {
    if (QC.Login.check()) {
        QC.Login.getMe(function (openId, accessToken) {
            //alert(["当前登录用户的", "openid为:" + openId, "accessToken为:" + accessToken].join("\n"));


            arrqq[0] = [openId];
            arrqq[1] = [accessToken];

            this.getnickname();

            var xmlhttp;
            try {
                xmlhttp = new XMLHttpRequest();
            } catch (e) {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function () {
                if (4 == xmlhttp.readyState) {
                    if (200 == xmlhttp.status) {
                        var result = xmlhttp.responseText;
                        if (result != "") {
                        }
                        else {
                        }
                        window.opener.location.href = "/index.aspx";
                    }
                }
            }
            xmlhttp.open("get", "/QQ.aspx?openId=" + arrqq[0] + "&accesstoken=" + arrqq[1] + "&nickname=" + arrqq[2], false);


            xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
            xmlhttp.send("");
        });
    }
    else {
        window.opener.location.href = "/index.aspx";
    }
}



qq登陆开发文档参考
http://wiki.opensns.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91JS_SDK%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
http://connect.qq.com/intro/login/jssdk-demo js?qq登陆
[解决办法]
接口应该会返回昵称吧?
http://wiki.opensns.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91get_user_info

.success(function (s) {//成功回调
 alert("获取用户信息成功!当前用户昵称为:" + s.data.nickname);

返回的应该是个json串,应该不要data吧 直接 s.nickname 试试!
[解决办法]
兄弟,调用QQ第三方登录这些JS代码,不是你随便写的,是QQ已经给你写好的API,你调用就行了.你要干什么,可以在相应的调用方法中,加上一两句自己的代码,这些api的名字和调用方法是不能随便写改的
http://blog.csdn.net/chenguang79/article/details/8479564#comments
你仔细看一下这里的代码吧.你在这个代码的基础上一点一点的改吧.
[解决办法]
如果你现在可以取得到昵称,你把你的请求写在得到这个昵称之后
[解决办法]
问个小问题哈,我照小狼你的办法,加了调用JS的代码,和QQ按钮的代码,但更新完了服务器里的代码后,依然打开没有按钮,虽然源码里显示有代码,是又是为什么呢?难道是QQ没审核通过我的网站?

热点排行