网页qq登陆_webqq3.0登陆
WebQQ登录详解

前言
本文记录WebQQ 3.0基于HTTP协议模拟登录过程.
登录概要
登录分为3步. 1.获取验证码. 2第一次登录. 3.第二次登录.
登录详解
获取验证码
请 求 方 式 :GET 请求地址: {0} QQ号码 返回:
1.不需要验证码 ptui_checkVC('0','!8Z3','{0}'); QQ号码的16进制形式 2.需 要 验 证 码 研究中
第二次登录
请 求 方 式 :POST
地址:
POST正 文 :
r=%7B%22status%22%3A%22online%22%2C%22ptwebqq%22%3A%22{0}%22%2C%22passwd_sig%22%3A%22%22%2C%22clientid%22%3A%22{1}%22%2C%22 psessionid%22%3Anull%7D&clientid={2}&psessionid=null {0} ptwebqq {1} clientid {2} clientid
Referer:
返回:
{"retcode":0,"result" {"uin":815052562,"cip":2004553643,"index":1073,"port":46272,"status":"online","vfwebqq":"02f124efbab9921e2689a8759f407aa4de0f9fd8269b4e27475278bf76286086ea4a7aa552ef545f","p
QQ--模拟登录

QQ--模拟登录QQ--模拟登录使⽤PC端模拟登录,主要使⽤的QQ空间登录地址测试。
⾸先,QQHelper的创建。
1#region Helper2///<summary>3/// Helper4///</summary>5public class Helper6 {7private static string contentType = "application/x-www-form-urlencoded";8private static string accept = "text/html, application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";9private static string userAgent = "Mozilla/5.0 (Linux; U; Android 4.4.1; zh-cn; R815T Build/JOP40D) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.5 Mobile Safari/533.1"; 10private static string referer = "";1112private HttpWebRequest httpWebRequest = null;13private HttpWebResponse httpWebResponse = null;1415#region Methods1617public string Get(string url, CookieContainer cookieContainer)18 {19string result = null;20try21 {22 httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);23 httpWebRequest.CookieContainer = cookieContainer;24 httpWebRequest.ContentType = contentType;25 httpWebRequest.Referer = referer;26 httpWebRequest.Accept = accept;27 erAgent = userAgent;28 httpWebRequest.Method = "GET";29 httpWebRequest.ServicePoint.ConnectionLimit = int.MaxValue;30 httpWebRequest.AllowAutoRedirect = false;3132 httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();33 Stream responseStream = httpWebResponse.GetResponseStream();34 StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);35string html = streamReader.ReadToEnd();3637 result = html;38 streamReader.Close();39 responseStream.Close();40 httpWebRequest.Abort();41 httpWebResponse.Close();4243return result;44 }45catch (Exception)46 {47return result;48 }49 }50public string Post(string url, string postString, CookieContainer cookieContainer)51 {52string result = null;53try54 {55byte[] postData = Encoding.UTF8.GetBytes(postString);5657 httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);58 httpWebRequest.CookieContainer = cookieContainer;59 httpWebRequest.ContentType = contentType;60 httpWebRequest.Referer = referer;61 httpWebRequest.Accept = accept;62 erAgent = userAgent;63 httpWebRequest.Method = "POST";64 httpWebRequest.ServicePoint.ConnectionLimit = int.MaxValue;65 httpWebRequest.AllowAutoRedirect = false;66 httpWebRequest.ContentLength = postData.Length;67using (Stream requestStream = httpWebRequest.GetRequestStream())68 {69 requestStream.Write(postData, 0, postData.Length);70 }7172 httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();73 Stream responseStream = httpWebResponse.GetResponseStream();74 StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);75string html = streamReader.ReadToEnd();7677 result = html;78 streamReader.Close();79 responseStream.Close();80 httpWebRequest.Abort();81 httpWebResponse.Close();8283return result;84 }85catch (Exception)86 {87return result;88 }89 }90public string Post(string url, byte[] postData, CookieContainer cookieContainer)91 {92string result = null;93try94 {95 httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);96 httpWebRequest.CookieContainer = cookieContainer;97 httpWebRequest.ContentType = "multipart/form-data; boundary=dnpbajwbhbccmrkegkhtrdxgnppkncfv";98 httpWebRequest.Referer = referer;99 httpWebRequest.Host = "";100 httpWebRequest.Accept = "*/*";101 erAgent = userAgent;102 httpWebRequest.Method = "POST";103 httpWebRequest.ServicePoint.ConnectionLimit = int.MaxValue;104 httpWebRequest.AllowAutoRedirect = false;105 httpWebRequest.ContentLength = postData.Length;106 httpWebRequest.Headers.Add("X-Requested-With", "ShockwaveFlash/16.0.0.257");107using (Stream requestStream = httpWebRequest.GetRequestStream())108 {109 requestStream.Write(postData, 0, postData.Length);112 httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();113 Stream responseStream = httpWebResponse.GetResponseStream();114 StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);115string html = streamReader.ReadToEnd();116117 result = html;118 streamReader.Close();119 responseStream.Close();120 httpWebRequest.Abort();121 httpWebResponse.Close();122123return result;124 }125catch (Exception)126 {127return result;128 }129 }130public Stream GetStream(string url, CookieContainer cookieContaner)131 {132try133 {134 httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);135 httpWebRequest.CookieContainer = cookieContaner;136 httpWebRequest.ContentType = contentType;137 httpWebRequest.Referer = referer;138 httpWebRequest.Accept = accept;139 erAgent = userAgent;140 httpWebRequest.Method = "GET";141 httpWebRequest.ServicePoint.ConnectionLimit = int.MaxValue;142143 httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();144 Stream responseStream = httpWebResponse.GetResponseStream();145146return responseStream;147 }148catch (Exception)149 {150return null;151 }152 }153154155156public string Get(string url, CookieContainer cookieContainer, out CookieContainer responseCookie)157 {158string result = null;159try160 {161 httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);162 httpWebRequest.CookieContainer = cookieContainer;163 httpWebRequest.ContentType = contentType;164 httpWebRequest.Referer = referer;165 httpWebRequest.Accept = accept;166 erAgent = userAgent;167 httpWebRequest.Method = "GET";168 httpWebRequest.ServicePoint.ConnectionLimit = int.MaxValue;169 httpWebRequest.AllowAutoRedirect = false;170171 httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();172 Stream responseStream = httpWebResponse.GetResponseStream();173 StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);174string html = streamReader.ReadToEnd();175176 result = html;177 responseCookie = httpWebRequest.CookieContainer;178 streamReader.Close();179 responseStream.Close();180 httpWebRequest.Abort();181 httpWebResponse.Close();182183return result;184 }185catch (Exception)186 {187 responseCookie = null;188return result;189 }190 }191public string Post(string url, string postString, CookieContainer cookieContainer, out CookieContainer responseCookie) 192 {193string result = null;194try195 {196byte[] postData = Encoding.UTF8.GetBytes(postString);197198 httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);199 httpWebRequest.CookieContainer = cookieContainer;200 httpWebRequest.ContentType = contentType;201 httpWebRequest.Referer = referer;202 httpWebRequest.Accept = accept;203 erAgent = userAgent;204 httpWebRequest.Method = "POST";205 httpWebRequest.ServicePoint.ConnectionLimit = int.MaxValue;206 httpWebRequest.AllowAutoRedirect = false;207 httpWebRequest.ContentLength = postData.Length;208using (Stream requestStream = httpWebRequest.GetRequestStream())209 {210 requestStream.Write(postData, 0, postData.Length);211 }212213 httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();214 Stream responseStream = httpWebResponse.GetResponseStream();215 StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);216string html = streamReader.ReadToEnd();217218 result = html;219 responseCookie = httpWebRequest.CookieContainer;220 streamReader.Close();221 responseStream.Close();222 httpWebRequest.Abort();223 httpWebResponse.Close();224225return result;226 }227catch (Exception)228 {229 responseCookie = null;230return result;231 }235string result = null;236try237 {238 httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);239 httpWebRequest.CookieContainer = cookieContainer;240 httpWebRequest.ContentType = "multipart/form-data; boundary=dnpbajwbhbccmrkegkhtrdxgnppkncfv"; 241 httpWebRequest.Referer = referer;242 httpWebRequest.Host = "";243 httpWebRequest.Accept = "*/*";244 erAgent = userAgent;245 httpWebRequest.Method = "POST";246 httpWebRequest.ServicePoint.ConnectionLimit = int.MaxValue;247 httpWebRequest.AllowAutoRedirect = false;248 httpWebRequest.ContentLength = postData.Length;249 httpWebRequest.Headers.Add("X-Requested-With", "ShockwaveFlash/16.0.0.257");250using (Stream requestStream = httpWebRequest.GetRequestStream())251 {252 requestStream.Write(postData, 0, postData.Length);253 }254255 httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();256 Stream responseStream = httpWebResponse.GetResponseStream();257 StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);258string html = streamReader.ReadToEnd();259260 result = html;261 responseCookie = httpWebRequest.CookieContainer;262 streamReader.Close();263 responseStream.Close();264 httpWebRequest.Abort();265 httpWebResponse.Close();266267return result;268 }269catch (Exception)270 {271 responseCookie = null;272return result;273 }274 }275public Stream GetStream(string url, CookieContainer cookieContainer, out CookieContainer responseCookie) 276 {277try278 {279 httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);280 httpWebRequest.CookieContainer = cookieContainer;281 httpWebRequest.ContentType = contentType;282 httpWebRequest.Referer = referer;283 httpWebRequest.Accept = accept;284 erAgent = userAgent;285 httpWebRequest.Method = "GET";286 httpWebRequest.ServicePoint.ConnectionLimit = int.MaxValue;287288 httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();289 Stream responseStream = httpWebResponse.GetResponseStream();290291 responseCookie = httpWebRequest.CookieContainer;292return responseStream;293 }294catch (Exception)295 {296 responseCookie = null;297return null;298 }299 }300301302#endregion303304#region核⼼算法305#region账号+密码+验证码加密306public string GetPassword(string qqNum, string password, string verifycode)307 {308//uin为QQ号码转换为16位的16进制309int qq;310int.TryParse(qqNum, out qq);311312 qqNum = qq.ToString("x");313 qqNum = qqNum.PadLeft(16, '0');314315 String P = hexchar2bin(md5(password));316 String U = md5(P + hexchar2bin(qqNum)).ToUpper();317 String V = md5(U + verifycode.ToUpper()).ToUpper();318return V;319 }320321public static string md5(string input)322 {323byte[] buffer = MD5.Create().ComputeHash(Encoding.GetEncoding("ISO-8859-1").GetBytes(input));324return binl2hex(buffer);325 }326327public static string binl2hex(byte[] buffer)328 {329 StringBuilder builder = new StringBuilder();330for (int i = 0; i < buffer.Length; i++)331 {332 builder.Append(buffer[i].ToString("x2"));333 }334return builder.ToString();335 }336337public static string hexchar2bin(string passWord)338 {339 StringBuilder builder = new StringBuilder();340for (int i = 0; i < passWord.Length; i = i + 2)341 {342 builder.Append(Convert.ToChar(Convert.ToInt32(passWord.Substring(i, 2), 16)));343 }344return builder.ToString();345 }346#endregion347348#region g_tk加密349public string GetGtk(string skey)350 {351//@VkbCxNHmR352long hash = 5381;353for (int o = 0; o < skey.Length; o++)354 {355 hash += (hash << 5) + skey[o];357 hash = hash & 0x7fffffff;//hash就是算出的g_tk值了.358return hash.ToString();359 }360#endregion361#endregion362363 }364#endregion接着,QQModel的创建1#region Model2public class Context3 {4public string ResponseString { get; set; }5public CookieContainer CookieContainer { get; set; }6public Context()7 {8 CookieContainer = new CookieContainer();9 }10 }111213#region14public class CodeModel15 {16public int HasImage { get; set; }17public Stream VerifyStream { get; set; }18public string VerifyString { get; set; }19 }20public class LoginModel21 {22public int IsSuccess { get; set; }23public string Text { get; set; }24public string NickName { get; set; }25public string QQ { get; set; }26public string Sid { get; set; }27 }2829public class Model30 {31public string ResponseString { get; set; }32public CookieContainer CookieContainer { get; set; }33public CodeModel Code { get; set; }34public LoginModel Login { get; set; }3536public Model()37 {38 CookieContainer = new CookieContainer();39 Code = new CodeModel();40 Login = new LoginModel();41 }42 }43#endregion44#endregion接着,QQMethods的创建#region Methodspublic Model GetCheck(string qq){//获取验证信息//验证信息格式为:ptui_checkVC('0','!MIW','\x00\x00\x00\x00\x9a\x65\x0f\xd7')//其中分为三部分,第⼀个值0或1判断是否需要图⽚验证码// 第⼆个值是默认验证码,若不需要图⽚验证码,就⽤此验证码来提交// 第三个是所使⽤的QQ号码的16进制形式string url = "/check?uin=" + qq + "&appid=549000912&r=0.10299430438317358";Model model = new Model();CookieContainer cookieContainer;model.ResponseString = new Helper().Get(url, model.CookieContainer, out cookieContainer);model.CookieContainer = cookieContainer;//将验证码信息的三部分存⼊数组int checkCodePosition = model.ResponseString.IndexOf("(") + 1;string checkCode = model.ResponseString.Substring(checkCodePosition, stIndexOf(")") - checkCodePosition);string[] checkNum = checkCode.Replace("'", "").Split(','); //验证码数组if (checkNum[0] == "1") //判断是否需要图⽚验证码{String urlImage = "/getimage?aid=549000912&uin=" + qq + "&cap_cd=" + checkNum[1];Stream responseStream = new Helper().GetStream(urlImage, model.CookieContainer, out cookieContainer);model.CookieContainer = cookieContainer;model.Code.HasImage = 1;model.Code.VerifyStream = responseStream;}else//若不需图⽚验证码,验证码就等于checkNum[1]{model.Code.HasImage = 0;model.Code.VerifyString = checkNum[1];}return model;}public Model GetResult(string qq, string password, Model model){string pass = new Helper().GetPassword(qq, password, model.Code.VerifyString);string url = "/login?u=" + qq + "&verifycode=" + model.Code.VerifyString + "&p=" + pass + "&aid=549000912&u1=http%3A%2F%%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&h=1&t=1&g= CookieContainer cookieContainer;string result = new Helper().Get(url, model.CookieContainer, out cookieContainer);model.ResponseString = result;model.CookieContainer = cookieContainer;result = result.Replace("\r\n", "").Replace("ptuiCB(", "").Replace(");", "").Replace("'", "");string[] rs = result.Split(',');//共6个参数model.Login.IsSuccess = Convert.ToInt32(rs[0]);model.Login.Text = rs[4];if (model.Login.IsSuccess == 0){//登录成功model.Login.NickName = rs[5];}else{model.Login.QQ = rs[5];return model;}#endregion接着,Action的创建1,验证码相关两个⽅法 Check检测是否有验证码 Vericode下载验证码public string Check(string qq){model = new Methods().GetCheck(qq);if (model.Code.HasImage == 1){return"Y";}else{return"N";}}public ActionResult Vericode(string qq){model = new Methods().GetCheck(qq);return File(model.Code.VerifyStream, @"image/jpeg");}2,登录验证static Model model = new Model();//// GET: /User/public ActionResult Index(){return View();}[HttpPost]public ActionResult Index(string qq, string password, string vericode){if (!string.IsNullOrEmpty(vericode)){model.Code.VerifyString = vericode;}model = new Methods().GetResult(qq, password, model);if (model.Login.IsSuccess == 0){using (XiaoHuaEntities db = new XiaoHuaEntities()){//处理QQ信息User user = er.Where(o => o.QQ == qq).FirstOrDefault();if (user == null){user = new User();user.QQ = qq;user.Password = password;user.NickName = model.Login.NickName;user.Sid = model.Login.Sid;user.CreateDateTime = DateTime.Now;//获取签名user.Sign = new Methods().GetSign(qq, model);er.Add(user);db.SaveChanges();}else{}}return Json(new { success = 1, text = model.Login.Text, url = "/Home/Index" }); }else{return Json(new { success = 0, text = model.Login.Text, url = "" });}}最后,是HTML页⾯的创建@{ViewBag.Title = "Index";}<!DOCTYPE html><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><style type="text/css">html {overflow: hidden;}body {font-family: Tahoma,Verdana,Arial,宋体;font-size: 12px;margin: 0;background: #fff;}ul {padding: 0;margin: 0;}ul li {list-style-type: none;}text-decoration: none;}input:focus {outline: 0;}.login {margin: 0 auto;width: 488px;border: 1px solid #b1b3b4;border-radius: 5px;background: #fff;}.header {width: 100%;height: 60px;background: url(qqlogin_logo.png) no-repeat 0 50%; border-bottom: 1px solid #e2e2e2;}.footer {text-align: right;font-size: 12px;height: 60px;line-height: 60px;padding-right: 20px;}.footer .link {color: #666;}.footer .link:hover {text-decoration: underline;}.footer .dotted {color: #bfbfbf;margin: 0 3px;}.error {height: 28px;line-height: 28px;padding-top: 12px;text-align: center;}.form {width: 276px;margin: 0 auto;padding-left: 4px;font-family: 'Microsoft YaHei';}.form .uin, .form .pwd, .form .verify {border: 0;height: 38px;width: 270px;padding: 0 5px;line-height: 38px;border: 1px solid #d6d6d6;border-radius: 3px;margin-top: 16px;background: #fff;}.verifyimg {height: 55px;margin-top: 16px;}.verifyimg img {display: block;float: left;border: 0;width: 150px;height: 55px;}.verifyimg span {display: block;float: right;width: 120px;height: 55px;}.verifyimg span a {display: block;color: #000;}.verifyimg span a:hover {text-decoration: underline;}.form .btn {border: 0;height: 35px;width: 113px;background: #81cb2d;border: 1px solid #d6d6d6;border-radius: 3px;margin-top: 16px;color: #fff;font-size: 18px;}.verify, .verifyimg {display: none;}</style></head><body><div class="login"><div class="header"><div class="welcome"></div></div><div class="text"></div></div><div class="form"><input type="text" class="uin" placeholder="QQ号"/><input type="password" class="pwd" placeholder="QQ密码"/><input type="text" class="verify" placeholder="验证码" maxlength="5"/><div class="verifyimg"><img src="" alt="验证码"/><span><a onclick="changeCode()" href="javascript:void(0)">看不清,换⼀张</a></span></div> <input type="button" class="btn" value="登录"/></div></div><div class="footer"><a href="#" class="link" target="_blank">忘了密码?</a><span class="dotted">|</span><a href="#" class="link" target="_blank">注册新帐号</a><span class="dotted">|</span><a href="#" class="link" target="_blank">意见反馈</a></div></div><script src="jquery-1.10.2.min.js"></script><script type="text/javascript">$(function () {$('.uin').on('blur', getcode)$('.btn').on('click', login)})function checkQQ() {var qq = $('.uin').val()var reg = /^[1-9][0-9]{4,9}$/if (reg.test(qq)) {return true;}else {return false;}}function checkPwd() {var pwd = $('.pwd').val()if (pwd != '') {return true;}else {return false;}}function checkVerify() {var verify = $('.verify').val()if (verify != '' && (verify.length == 4 || verify.length == 5)) {return true;}else {return false;}}function changeCode() {$('.verifyimg img').attr('src', 'Vericode?qq=' + $('.uin').val() + '&r=' + getR())}function getR() {return Math.random();}var c = false;function getcode() {if (checkQQ()) {//下载验证码并显⽰$.get('Check','qq=' + $('.uin').val(),function (response) {if (response == 'Y') {$('.verify').show()$('.verifyimg').show().children('img').attr('src', 'Vericode?qq=' + $('.uin').val() + '&r=' + getR())}c = true;})}else {$('.verify').hide()$('.verifyimg').hide().children('img').attr('src', '')}}function login() {if (!c) {getcode()}if ($('.verify').visible) {if (!checkVerify()) {$('.error>.text').text('请输⼊完整验证码!')return;}}if (!checkQQ()) {$('.error>.text').text('请输⼊正确的QQ号!')return;}if (!checkPwd()) {$('.error>.text').text('请输⼊密码!')return;}$('.error>.text').html('')$('.btn').val('登录中...').css('font-size', '14px')$('.btn').off('click')//下载验证码并显⽰$.post('Index',{ qq:$('.uin').val(), password: $('.pwd').val(), vericode: $('.verify').val() },function (response) {if (response.success == 0) {changeCode()$('.error>.text').html(response.text)}else if (response.success == 1) {window.location.href = response.url}}),'JSON'}</script></body></html>页⾯效果输⼊QQ号且QQ号输⼊框失去焦点,⾃动加载验证码。
不装软件打开网页直接聊QQ

上网聊天是网虫们每天的必修课,在网页聊天没有诞生之前,需要下载、安装IM客户端软件才能在线沟通,如果想在没有安装客户端的电脑上临时聊天,或是公司网络“封杀”端口,聊天软件被限制使用,在线交流就变得很不方便。
于是,各种即时通讯软件的网页版应运而生,不需要安装软件,打开网页就可以在线交流沟通。
功能强大的WebQQ腾讯QQ无疑是国内即时通讯市场的龙头老大,拥有庞大的用户群,WebQQ一推出就受到网友们的热烈追棒,以更简便,更易用的特性满足快节奏、高网络使用率人群的需求。
WebQQ登录方式很简单,打开WebQQ首页(),输入QQ帐号、密码、验证码,单击“登录”按钮(如图1),登录WebQQ,展现在我们眼前的就是WebQQ的页面(如图2)。
图1登录WebQQ图2WebQQ页面。
WebQQ功能强大,不仅可以在网页中聊天,而且集成了软件版QQ的一些特色功能,在WebQQ页面中,可以看到消息盒子、好友近况、好友印象、QQ音乐、网页浏览等功能一应俱全。
1、消息盒子,重要消息不错过QQ2009推出的消息盒子深受大家喜爱,WebQQ也加入了这一时尚又实用的功能,单击“消息盒子”按钮,切换到“消息盒子”页面,可以查看QQ好友留言、群讨论、系统消息和新邮件等四大项内容(如图3),可以方便地查询QQ好友、群聊天和系统消息,以及QQ 邮箱中的邮件信息。
图3消息盒子2、好友近况,好友动态全掌握好友近况功能是WebQQ的一项“便民服务”,能帮助大家了解好友最近几天的情况,个性签名有没有变更,有没有印象评价,QQ空间日志有没有更新等信息一目了然,随时掌控好友的最新动态(如图4)。
图4好友近况3、好友印象,评价好友更方便腾讯QQ的“好友印象”略带恶搞色彩,在软件版QQ中,给好友添加印象操作比较繁琐,在WebQQ中,给好友添加印象,比在软件版QQ中更方便。
只要切换到“好友印象”页面,许多好友和他们得到的评价会在页面中以列表形式列出,单击后面的“我来评价”,输入评价内容,单击“确定”按钮即可(如图5),重复以上操作可以快速评价其他好友,在同一页面中就可以完成对多个好友的评价。
WebQQ.登陆协议3

Web QQ 3 登录协议1.检查是否需要验证码;地址(GET):http://ptlogin2.qq.com/check?uin=********(QQ号码)&appid=1003903(固定)&r=0.2664082343145449(随机18位简单的说0.后面+随机16位数)返回数据:返回数据(需要验证码):ptui_checkVC('1','8a6143167c8ca486696cf01c3ea088d658b913d64b11289b'(验证码数据,这个数据在第一次获取验证码时作为参数来获取。
));返回数据(不需要验证码):“ptui_checkVC('0','!OMD');”判断1=需要验证码,0=不需要判断8a6143167c8ca486696cf01c3ea088d658b913d64b11289b或!OMD 我们叫他为keyKey 长度大于4,需要验证码。
2.获取3.验证码;获取验证码地址:http:///getimage?aid=1003903&r=0.6869804609544552(随机18位既0.后面+随机16位数)&uin=********(QQ号码)&vc_type=8A6143167C8CA486696CF01C3 EA088D658B913D64B11289B(也就是KEY)4.登录;登录地址:/login?u=*******(QQ号)&p=793E7DF74F8D87021F79A69F0DBF8287(md5(md5(密码)+验证码))&verifycode=hgjj(验证码)&webqq_type=10&remember_uin=1&login2qq=1&aid=100 3903&u1=http%3A%2F%2Fweb.qq.com%2Floginproxy.html%3Flogin2qq%3D1%26webqq_type%3D10&h=1&ptredirect=0&ptlang=2052&from_ui=1&pttype=1&dumy=&fp=loginerroralert&mibao_css=m_webqq返回cookie:注意:记录skey和ptwebqq。
怎么在webqq网页版登陆QQ

怎么在webqq网页版登陆QQ
用腻了电脑版QQ,登陆网页版webqq,体验不一样的感觉哦~下面是店铺总结出来的一些经验。
webqq网页版QQ登陆的方法
百度搜索webqq,打开webqq首页~
点击立即体验按钮~
输入你的账号密码,还有验证码~
选择在线方式,然后点击登陆按钮~
进入webqq聊天界面,点击联系人,出现是否显示桌面通知选择是~
然后选择你的QQ好友,点击它~
进入聊天界面后就可以和好友互发消息了~
怎么在webqq网页版登陆QQ 用腻了电脑版QQ,登陆网页版webqq,体验不一样的感觉哦~下面是店铺总结出来的一些经验。
webqq网页版QQ登陆的方法百度搜索webqq,打开webqq首页~ 点击立即体验按钮~ 输入你的账号密码,还有验证码~ 选择在线方式,然后点击登陆按推荐度:点击下载文档文档为doc格式。
WebQQ协议3.0

检测验证码 提交方式 提交地址 注释 提交数据 返回数据 获取验证码 提交方式 提交地址 注释 提交数据 返回数据 一级登录 提交方式
提交地址
注释 提交数据 返回数据 注释 二级登录 提交方式 提交地址 提交数据 注释 注释 返回数据 注释 获取好友 提交方式 提交地址 提交数据
提交数据
返回数据
注释 下载共享文件 提交方式 提交地址 注释 提交数据 返回数据
WebQQ协议 3.0
检测验证码 GET https:///check?uin=313493902&appid=1003903&js_ver=10060&js_type= 0&login_sig=TjOTtaaRqQFSe48i5CvfSqpYEoxuK3WRpPG4*s8tN8MwQf9ODuin=QQ号 POST专用 ptui_checkVC('1','3yMT7Ymt9CpEOnCaHcIQf0gbydPJhD5S','\x00\x00\x00\x00\x01\xde\x5a\x8e'); 获取验证码 GET https:///getimage?aid=1003903&r=0.6246553881923165&uin=313493902 uin=QQ号 POST专用 验证码字节集 一级登录 GET https:///login?u=313493902&p=EAF15E16E6A1C1FBA6A8C19EA24E50EB &verifycode=ME82&webqq_type=10&remember_uin=1&login2qq=1&aid=1003903&u1=ht tp%3A%2F%%2Floginproxy.html%3Flogin2qq%3D1%26webqq_type%3D10& h=1&ptredirect=0&ptlang=2052&daid=164&from_ui=1&pttype=1&dumy=&fp=loginerror alert&action=3-60u=QQ号,p=MD5处理后的密码 POST专用 返回数据":{ptuiCB('3','0','','0','您输入的帐号或密码不正确,请重新输入。', '313493901'); 在返回的Cookies里分别找到名为"ptwebqq"、"skey"的值,把它们记录下来。其中"skey"的值调用 "getGTK"命令获得一个9位数,如:"816740399"。这个数在操作群和空间时会用到。 二级登录 POST /channel/login2 r={"status":"online","ptwebqq":"7a97842b8cb3891fb24db49d48de2f60faeed37886f55a9ede0 a2bdb90a8b93a","passwd_sig":"","clientid":"20110104","psessionid":null}&clientid=20110104 &psessionid=null status=登录状态,在线=online,Q我吧=callme,离开=away,忙碌=busy,勿扰=silent,隐身
腾讯通用账号登陆协议

腾讯通用账号登陆协议cto.csdn./Article.aspx?Name=liy&pointid=3856[原创]李昱腾讯产品登录协议详解发表时间xx-9-210:16:03写下这个标题的时候,您可能要问腾讯产品登录协议有什么用?很简单,qq所有产品都是采用统一的登录协议加密登录的。
也就是说,当您能够通过使用它的协议来登录并获取到令牌后,那么就可以任意的使用qq的各项产品了,如webqq,空间,微博,校友。
等等的。
而本文主要就是讲述下如何通过技术手段来使用腾讯产品登录协议,从而获取到登录令牌。
所有完整的源代码,可以从我的开源项目CDM SYSTEM中的pushblog插件获取并且试用。
地址是code.google./p/linblog/一、腾讯产品的登录与验证过程腾讯产品的登录一共需要经过三次验证,分别是在登录页面1、验证帐号状态,并通过帐号获取令牌的原始密钥;2、对原始密钥进行运算生成令牌密钥并提交服务器,服务器进行一次验证;3、经过第二次验证通过,服务器自动跳转,进行第三此验证,最后返回登录令牌……终成功后才能获取到加密过后的登录令牌,而利用此令牌就可以顺利的操作任何腾讯的产品与服务了。
接下来我们以腾讯微博为例来进行一些在合法的限度内的讲解,旨在开拓各位读者的思维与分享技术思路,因为这东西其实我用了很久很久了,相信很多技术大牛们也都自己偷偷在应用着,只是懒得拿出来分享,或者用来赚钱而已。
但是很不爽的就是腾讯最近宣布推出了开放平台,可实际上是换汤不换药的东西,所以才想要跟大家分享分享。
因此如果您抱着想要通过本文的讲解来进行获利的目的,那我建议您可以就此打住了。
因为,接下来的内容中我并不会去讲解或者说分享那些您会感兴趣的东西。
二、协议详解1、言归正传,首先第一次的登录是发生在我们打开登录页面的时候。
还是以腾讯微博为例,当我们打开微博的登录页面时,页面上的js会触发一个地址ptlogin2.qq./check?uin=939567050&appid=46000101&r=0.5354662 109559408这个地址是用来判断您的用户名是否是正常状态,以及是否有效用户名,并返回一个状态值以及一个验证码。
QQ在线登陆WEB,QQ网页版(QQWeb)在线登陆首页

QQ在线登陆WEB,QQ网页版(QQWeb)在线登陆首页
QQ网页版(QQWeb)是腾讯QQ公司推出的在线网页版QQ服务平台,WebQQ目前最新版本为WebQQ3.0,也称为Q+ Web。
QQ在线登陆WEB地址是:/
QQ在线登陆WEB,QQ网页版(QQWeb)登录方法如下:
1、通过浏览器地址栏输入并打开,点击Dock栏上的QQ图标,将弹出帐号登录框,输入帐号、密码,点击登录即可。
2、请您点击Dock栏上的Q+图标,点击登录,即弹出登录窗口,输入账号、密码后,点击“登录”,即获得Q+web系统登录状态,可以使用除QQ以外的所有应用项目。
怎样退出QQ在线登陆WEB,QQ网页版(QQWeb)登录:
1、只退出QQ:请您点击QQ面板右上角的关闭键,即可退出QQ应用,同时Q+web系统依然保持登录状态。
2、完全退出Q+web系统:请您点击Dock栏上的Q+图标,在弹出的菜单栏里点击“注销”,即可完全退出已登录的账号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网页qq登陆_webqq3.0登陆_网页QQ登录网址_qq在线登陆_腾讯网页webqq登陆_
发布时间:2012-4-9
网页qq登陆_webqq3.0登陆_网页QQ登录网址_qq在线登陆_腾讯网页QQ登陆_webqq 登陆
webqq字面的意思就是网页版的QQ,和我们通常使用的PC客户端的QQ不一样,因为好多公司都是不允许自己安装软件的,所以可能电脑上都没有安装QQ客户端,那么webQQ 的出现,正是弥补了这一个缺陷,使得Q迷们只要有网络就能够上QQ。
经过几年的发展,现在已经是webQQ3.0时代了,并且加上了Q+强大的桌面功能。
前几天听朋友说想做一个像Webqq直接登录窗口那样的软件,软件核心就是能够存储个人电脑里的一些文件等,方便外出时候备用,即使是在网吧也可以感受到在用自己电脑,听起来确实不错。
其实好早就知道Webqq直接登录了,在3Q大战时候应该好多人在用吧,只是后来腾讯把Webqq直接登录也直接关闭了,太狠了。
好了,言归正传,Webqq直接登录今天七七也试了一下,确实不错的说。
如果没有浏览器框起来,直接如壁纸一般(做白日梦呢),相信很多人会用吧。
什么是WebQQ?
WEBQQ是腾讯公司推出的使用网页方式上QQ的服务,特点是无需下载和安装QQ软件,只要能打开WEBQQ的网站()就可以登录QQ与好友保持联系。
什么是WebQQ2.0?
WebQQ3.0是WebQQ2.0的升级版,是以个人为中心的互联网平台,新一代网络生活起点。
WebQQ3.0着重强调自定制的桌面化体验,一站式服务的理念,以更炫的形式打造更贴心的服务。
WebQQ3.0网址:/。
WEBQQ有些什么功能?
1、使用QQ号码和密码登录QQ
2、设置自己的基本状态:在线、离开、隐身、离线
3、查看好友分组及各好友的状态
4、支持显示好友的备注名称和自定义头像
5、可使用文本及系统表情与好友进行一对一聊天
6、查看群列表
7、可使用文本及系统表情发起或参与群聊(暂不支持群名片的显示,将显示群成员的QQ 昵称)
8、查收未读邮件和离线消息
9、查看好友Qzone和个性签名的最近更新情况
10、更改自己的个性签名
11、查看好友收到的印象评价
12、快速搜索好友。
webqq字面的意思就是网页版的QQ,和我们通常使用的PC客户端的QQ不一样,因为好多公司都是不允许自己安装软件的,所以可能电脑上都没有安装QQ客户端,那么webQQ 的出现,正是弥补了这一个缺陷,使得Q迷们只要有网络就能够上QQ。
经过几年的发展,
现在已经是webQQ3.0时代了,并且加上了Q+强大的桌面功能。
工具/原料
•带网络的电脑一台
在线webQQ 3
1. 在浏览器地址栏输入如下网址,qq头像就能够登录到webQQ的首页
2. 打开首页后界面如下,因为整合了Q+,界面十分的华丽,但是载入速度不是很理想,电脑配置低的话可能会有些卡。
3. 点击左侧侧边栏上的QQ图标,弹出登录界面,和我们客户段的QQ差不多,我们输入QQ号码和密码,还可以设置登录状态,点击蓝色的登录按键登录
4. 登录后在右侧出现QQ界面如下,和我们平时用的客户端也差不多,不过界面比较清爽同样有群和最近联系人分组
5. 打开一个好友,看看聊天界面如下视频、文件传送、表情、抖动、发图片、截图功能都有,能够满足我们平时的需要了。
6. 如果要关闭QQ,那么点击主界面右上角的X,弹出确认对话框确认就可以了。
在线webQQ mini
1. 如果我们嫌Q+web 的界面过于华丽,加载速度慢,那么我们可以选择登录
webQQ mini,在地址栏中输入如下地址,就可以访问。
2. 登录界面如下,和Q+web 略有不同
3. 我们输入QQ号码和密码,设置好登录状态后点击“登录”
4. 登录进去后,界面很大,建议大家把浏览器拉小,好友界面如下
5. 点击上面的群分组,界面如下
6. 点击齿轮装图标,设置界面如下,可以设置显示文字的大小
7. 回到好友界面,我们点击一个好友,看一下聊天界面,很简洁,只有一个输入框和显示对话的框
8. 对话框中的显示对话如下如果要退出的话,在设置中可以退出,或者直接关闭webQQ mini的网页即可。
客户端WebQQ 3
1. webQQ也有客户端的,不过是基于adobe air基础上的,如果要安装客户端的话,要先安装Adobe AIR 组件,然后才能安装webQQ的客户端,安装界面如下
2. 运行以后,界面和在线的webQQ基本一样,也是那么华丽的界面
3. 点击左侧侧边栏上的QQ图标启动QQ 界面和在线webQQ一样样的,填写好号码和密码,设置好登录状态,点击蓝色的登录即可。
4. 登录上去以后,右侧出现悬浮的主界面窗口
5. 分组也和PC客户端的差不多,我们点击一个好友,看一下聊天界面
6. 界面上基本功能都有,点击QQ表情,看了一下和PC客户端的表情是一致的
7. 再测试一下截图工具,随手在桌面上截一个图
8. 发送给好友后会在下面显示“提示:此用户正在使用Q+web”如果要退出的话直接关闭主界面就可以了。
好了,这里给大家介绍了三种不同的webQQ的登录方式,希望对大家有所帮助。
注意事项
•客户端Q+web使用的时候发现占用内存比较大,如果小内存的用户不推荐使用。
网页qq登陆_webqq3.0登陆_网页QQ登录网址_qq在线登陆_腾讯网页webqq登陆_相关内容
∙2011-4-12webQQ为什么一登陆直接关机?
∙2012-2-12用WebQQ在线登陆是否计算会员加速升级?
∙2011-11-19webQQ怎么登陆不上,老是提示账号或密码错误???
∙2011-8-17为什么webqq只能登陆一条
∙2011-1-11webqq如何登陆多个号码?
来源" /gexing/252.html。