一步一步来做获取好友列表和群列表_【百度霸屏推广软件】【手机号码获取软件】【QQ好友列表获取软件】【微信好友列表提取软件】【百度霸屏劫持软件】【抢客户软件】一切为用户转化而生【牛B的精准营销拓客神器】- 【抢客系统4.0】

一步一步来做获取好友列表和群列表

时间:2018-05-27 15:21 作者:admin 点击量:

全系列预计会有这些步骤,当然某些步骤可能会合并:qq好友列表获取

  • 验证码
  • 第一次登陆
  • 第二次登陆
  • 保持在线和接收消息
  • 获取好友和群列表
  • 发送消息
  • 变成智能的(*゚∀゚*)

获取好友 1-获取QQ好友的hash算法


P = function (b, j) {
    for (var a = j + "password error", i = "", E = []; ;)
        if (i.length <= a.length) {
            if (i += b, i.length == a.length) break;
        } else {
            i = i.slice(0, a.length);
            break
        }
    for (var c = 0; c < i.length; c++) E[c] = i.charCodeAt(c) ^ a.charCodeAt(c);
    a = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
    i = "";
    for (c = 0; c < E.length; c++) i += a[E[c] >> 4 & 15], i += a[E[c] & 15];
    return i
}

 

传入了2个参数:QQ号码ptwebqq(文章2中从cookie中拿到)


获取好友 2-请求


  • 地址:http://s.web2.qq.com/api/get_user_friends2
  • referer:http://s.web2.qq.com/proxy.html?v=20130916001&callback=1&id=1
  • post字符串:string.Format("r={{\"vfwebqq\":\"{0}\",\"hash\":\"{1}\"}}", this.VfWebQQ, this.Hash);

获取好友 3-返回和分析



返回json对象由两部分组成:retcoderesult,前者表示请求是否成功不提,我们主要看result,里面包含了这些东西:

  1. categories,分类,即你的QQ好友分组,index可以看做分组表的主键sort排序,name该组的别名。《我的好友》分组默认是index:0
  2. friends好友,flag表示默认头像序号,后文同不提,uin是贯穿全文的参数,是在网页关闭前,浏览器客户端的唯一标识categories对应上面分组信息
  3. info 储存了好友的信息--昵称nickuin对应唯一标识
  4. marknames 备注名称,同样uin对应唯一标识,markname对应备注名称,这里要说的是,如果没有备注,在这里是不显示的qq好友列表获取软件
  5. vipinfo,vip信息,无用

我建立了一个类去用于反序列化它

 

class JsonFriendModel
    {
        public int retcode { get; set; }
 
        public paramResult result = new paramResult();
 
        public class paramResult
        {
            ///
            /// 分组信息
            ///
            public List categories = new List();
            ///
            /// 好友汇总
            ///
            public List friends = new List();
            ///
            /// 好友信息
            ///
            public List info = new List();
            ///
            /// 备注
            ///
            public List marknames = new List();
 
            ///
            /// 分组
            ///
            public class paramCategories
            {
                public string index { get; set; }
 
                public int sort { get; set; }
 
                public string name { get; set; }
            }
            ///
            /// 好友汇总
            ///
            public class paramFriends
            {
                public string flag { get; set; }
 
                public string uin { get; set; }
 
                public string categories { get; set; }
            }
            ///
            /// 好友信息
            ///
            public class paramInfo
            {
                public string face { get; set; }
 
                public string nick { get; set; }
 
                public string uin { get; set; }
            }
            ///
            /// 备注
            ///
            public class paramMarkNames
            {
                public string uin { get; set; }
 
                public string markname { get; set; }
            }
        }
    }



 

小扩展 linq中的left join 左查询


上面返回的result信息,包含了4个对象,互相使用uin或者其它进行关联,使用for循环固然可以,当然有更漂亮的方法也会跟大家分享一下,如果写的不好也请大家多提意见:

var query = from f in model.result.friends
            join i in model.result.info on f.uin equals i.uin into table1
            from t1 in table1.DefaultIfEmpty()
            join m in model.result.marknames on f.uin equals m.uin into table2
            from t2 in table2.DefaultIfEmpty()
            select new Friend()
            {
                Uin = f.uin,
                Face = t1 == null ? string.Empty : t1.face,
                Category = f.categories,
                Nick = t1 == null ? string.Empty : t1.nick,
                MarkName = t2 == null ? string.Empty : t2.markname
            };


以上是使用了left join 多表进行关联查询,model即对应了返回json的result属性  强制获取qq好友列表


  • 地址:http://s.web2.qq.com/api/get_group_name_list_mask2
  • referer:http://s.web2.qq.com/proxy.html?v=20130916001&callback=1&id=1
  • post字符串:string.Format("r={{\"vfwebqq\":\"{0}\",\"hash\":\"{1}\"}}", this.VfWebQQ, this.Hash);

获取群 2-返回信息


结构和获取好友有些类似,不同的是:群的唯一标识是gid,好友的是uin,名称不同。以下是对应的实体类:

 

class JsonGroupModel
{
    public int retcode { get; set; }
 
    public paramResult result = new paramResult();
 
    public class paramResult
    {
        public List gnamelist = new List();
 
        public class paramGnamelist
        {
            public string flag { get; set; }
 
            public string gid { get; set; }
 
            public string code { get; set; }
 
            public string name { get; set; }
        }
    }
 
}

 

 


上一篇:【抢客网】获取QQ好友共同好友列表信息

下一篇:免费申请9位精品QQ靓号 完全免费哦!

注册体验: