平常API之QQ登陸

 

     此次的QQ登陸我研究了很久惹,今天終於能夠和你們分享啦!html

你們都知道,QQ登陸有不少方法,例如使用帳號密碼登陸,手機版企鵝掃碼登陸等等(這些方法只能驗證QQ是否成功登陸,並無聊天等功能)git

首先就來使用帳號密碼登陸吧(略簡單)app

1、準備工做

  咱們須要一隻WebBrowser和登陸API http://ui.ptlogin2.qq.com/cgi-bin/login?appid=1006102&s_url=http://id.qq.com/index.html&hide_close_icon=1ide

此外,還須要用於解析數據的Newtonsoft.Json測試

 這實際上是QQ中心的登陸界面,咱們須要使用WebBrowser進行模擬登陸,也就是自動填表ui

界面設計大概是醬紫(略醜)編碼

2、編碼工做

首先實例化一隻WebBrowser,而後將他轉到登陸界面(如沒有WebBrowser請引用程序集System.Windows.Forms)url

1 System.Windows.Forms.WebBrowser wb = new System.Windows.Forms.WebBrowser();
2 wb.Navigate("http://ui.ptlogin2.qq.com/cgi-bin/login?appid=1006102&s_url=http://id.qq.com/index.html&hide_close_icon=1");

接下來就能夠填表單啦spa

1                 System.Windows.Forms.HtmlDocument doc = wb.Document;
2                 doc.GetElementById("switcher_plogin").InvokeMember("click");
3                 await Task.Delay(200);
4                 doc.GetElementById("u").InnerText = "QQ";
5                 await Task.Delay(200);
6                 doc.GetElementById("p").InnerText = "Password";7                 await Task.Delay(200);
8                 doc.GetElementById("login_button").InvokeMember("click");

再此以前須要註冊Navigated事件,以在登陸成功時抓取數據.net

1  if (wb.DocumentTitle == "個人QQ中心")
2                 {
3                     var qq = Text(wb.Document.Cookie, "uin=o", ";", 0);//獲取QQ號
4                     var sl = Text(await Uuuhh.GetWebAsync("http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=" + qq, Encoding.Default), "portraitCallBack(", ")", 0);//獲取QQ名稱
5                     JObject o = JObject.Parse(sl);
6                     var image=$"http://q2.qlogo.cn/headimg_dl?bs=qq&dst_uin={qq}&spec=100";//獲取QQ頭像
7                     var qqname = o[qq][6].ToString();//QQ名稱 8                 }

這樣就完成了帳號密碼的登陸

3、運行測試

運行成功!o(* ̄▽ ̄*)ブ

源碼下載:http://git.oschina.net/TwilightLemon/Updata/raw/master/QQLogin.zip

 

本次教程到這裏就結束啦,但願你們多多關注我哦!o(* ̄▽ ̄*)ブ

相關文章
相關標籤/搜索