<html> <head> <title>QQ登陸跳轉</title> <script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> //切割字符串轉換參數表 function toParamMap(str){ var map = {}; var segs = str.split("&"); for(var i in segs){ var seg = segs[i]; var idx = seg.indexOf('='); if(idx < 0){ continue; } var name = seg.substring(0, idx); var value = seg.substring(idx+1); map[name] = value; } return map; } //隱式獲取url響應內容(JSONP) function openImplict(url){ var script = document.createElement('script'); script.src = url; document.body.appendChild(script); } //得到openid的回調 function callback(obj) { var openid = obj.openid; $("#openid").text(openid); //跳轉服務端登陸url var resulturl = "@{openapi.QQs.login_result()}"; var accessToken = $("#accessToken").text(); //向服務端傳輸access_token及openid參數 document.location.href=resulturl + "?access_token=" + accessToken + "&openid=" + openid; } </script> </head> <body> <!--<p>AccessToken:<span id="accessToken"></span>--ExpireIn<span id="expire"></span></p>--> <!--<p>OpenID:<span id="openid"></span></p>--> <!-- 執行腳本 --> <script type="text/javascript"> //應用的APPID ***** 本身的app ID var appID = ""; //登陸受權後的回調地址,設置爲當前url ******本身的回調地址 // var redirectURI = "@@{openapi.QQs.login()}"; var redirectURI = ""; //初始構造請求 if (window.location.hash.length == 0) { var path = 'https://graph.qq.com/oauth2.0/authorize?'; var queryParams = ['client_id=' + appID, 'redirect_uri=' + redirectURI, 'scope=' + 'get_user_info,list_album,upload_pic,add_feeds,do_like','response_type=token']; var query = queryParams.join('&'); var url = path + query; window.location.href= url; } //在成功受權後回調時location.hash將帶有access_token信息,開始獲取openid else { //獲取access token var accessToken = window.location.hash.substring(1); var map = toParamMap(accessToken); //記錄accessToken $("#accessToken").text(map.access_token); $("#expire").text(map.expires_in); //使用Access Token來獲取用戶的OpenID var path = "https://graph.qq.com/oauth2.0/me?"; var queryParams = ['access_token='+map.access_token, 'callback=callback']; var query = queryParams.join('&'); var url = path + query; openImplict(url); } </script> </body> </html>