日常API之QQ登录
?
? ? ?這次的QQ登錄我研究了好久惹,今天終于可以和大家分享啦!
大家都知道,QQ登錄有很多方法,例如使用賬號密碼登錄,手機版企鵝掃碼登錄等等(這些方法只能驗證QQ是否成功登錄,并沒有聊天等功能)
首先就來使用賬號密碼登錄吧(略簡單)
一、準備工作
? 我們需要一只WebBrowser和登錄API?http://ui.ptlogin2.qq.com/cgi-bin/login?appid=1006102&s_url=http://id.qq.com/index.html&hide_close_icon=1
此外,還需要用于解析數據的Newtonsoft.Json
?這其實是QQ中心的登錄界面,我們需要使用WebBrowser進行模擬登錄,也就是自動填表
界面設計大概是醬紫(略丑)
二、編碼工作
首先實例化一只WebBrowser,然后將他轉到登錄界面(如沒有WebBrowser請引用程序集System.Windows.Forms)
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");接下來就可以填表單啦
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事件,以在登錄成功時抓取數據
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 }這樣就完成了賬號密碼的登錄
三、運行測試
運行成功!o(* ̄▽ ̄*)ブ
源碼下載:http://git.oschina.net/TwilightLemon/Updata/raw/master/QQLogin.zip
?
本次教程到這里就結束啦,希望大家多多關注我哦!o(* ̄▽ ̄*)ブ
轉載于:https://www.cnblogs.com/TwilightLemon/p/7305147.html
總結
以上是生活随笔為你收集整理的日常API之QQ登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS 设置状态栏样式
- 下一篇: 【代码笔记】iOS-二维码