日常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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值