日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > C# WebQQ協議群發機器人(二)

C# WebQQ協議群發機器人(二)

來源:程序員人生   發布時間:2014-09-23 21:20:16 閱讀次數:2252次

本文出處http://blog.csdn.net/zhujunxxxxx/ 如需轉載請注明出處!

接著上一篇http://blog.csdn.net/zhujunxxxxx/article/details/38931287我講的內容

上面實現的都是與群操作相關的

接下來是獲取好友信息的方法

/// <summary> /// 獲取好友列表信息 /// </summary> public void GetFriendList() { Dictionary<string, Object> r = new Dictionary<string, Object>(); r.Add("h", "hello"); r.Add("hash", this.hash); r.Add("vfwebqq", this.vfwebqq); Dictionary<string, Object> data = new Dictionary<string, Object>(); data.Add("r", JsonConvert.SerializeObject(r)); string postdata = Tool.MakePostData(data); HttpItem item = new HttpItem() { URL = "http://s.web2.qq.com/api/get_user_friends2", Method = "POST", IsToLower = false, Timeout = 100000, Postdata = postdata, Host = HOST[1], Referer = REFERER[1], UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36",//用戶的瀏覽器類型,版本,操作系統 可選項有默認值 ContentType = "application/x-www-form-urlencoded", ResultType = ResultType.String }; HttpResult result = http.GetHtml(item); JObject ret = (JObject)JsonConvert.DeserializeObject(result.Html); JObject retjson = (JObject)ret["result"]; //有備注的好友 foreach (JToken jk in retjson["marknames"]) { this.friendlist.Add(jk["uin"].ToString(), jk["markname"].ToString()); } //無備注名的好友 foreach (JToken jk in retjson["info"]) { if (!this.friendlist.ContainsKey(jk["uin"].ToString())) this.friendlist.Add(jk["uin"].ToString(), jk["nick"].ToString()); } }


這個方法可以獲取到好友的信息,分為兩部分一部分是有備注名的好友信息,一部分是無備注名的好友信息

把這部分信息保存下來以后有用

獲取一個具體好友的信息(自己的信息也是通過這個獲取)

public void GetFriendInfo(string tuin) { string url = "http://s.web2.qq.com/api/get_friend_info2?tuin={$tuin}&verifysession=&code=&vfwebqq={$vfwebqq}&t=1402534798024"; url = url.Replace("{$vfwebqq}", vfwebqq); url = url.Replace("{$tuin}", tuin); HttpItem item = new HttpItem() { URL = url, Encoding = System.Text.Encoding.GetEncoding("utf-8"), Method = "get", IsToLower = false, Timeout = 100000, ReadWriteTimeout = 30000, Host = HOST[1], Referer = REFERER[1], UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0",//用戶的瀏覽器類型,版本,操作系統 可選項有默認值 ContentType = "application/x-www-form-urlencoded", ResultType = ResultType.String, }; HttpResult result = http.GetHtml(item); }


接下來是向某一個好友發送信息

public void SendPersonMsg(string tuin,string msg) { string style = ""{content}""; string temp = ""; temp += style.Replace("{content}", msg) + ","; temp = temp.Substring(0, temp.Length - 1); Random rd = new Random(); int msg_id = (rd.Next(100000) + 100000); string content = "[{$msg},"",["font",{"name":"宋體","size":"10","style":[0,0,0],"color":"000000"}]]"; content = content.Replace("{$msg}", temp); Dictionary<string, Object> r = new Dictionary<string, Object>(); r.Add("to", tuin); r.Add("face", 561); r.Add("content", content); r.Add("msg_id",msg_id); r.Add("clientid", this.clientid); r.Add("psessionid", this.psessionid); Dictionary<string, Object> data = new Dictionary<string, Object>(); data.Add("r", JsonConvert.SerializeObject(r)); data.Add("clientid", this.clientid); data.Add("psessionid", this.psessionid); string postdata = Tool.MakePostData(data); HttpItem item = new HttpItem() { URL = "http://d.web2.qq.com/channel/send_buddy_msg2", Accept = "*/*", Method = "POST", IsToLower = false, KeepAlive = true, Timeout = 100000, Postdata = postdata, Host = HOST[0], Referer = REFERER[0], UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2041.4 Safari/537.36", ContentType = "application/x-www-form-urlencoded", ResultType = ResultType.String }; HttpResult result = http.GetHtml(item); JObject ret = (JObject)JsonConvert.DeserializeObject(result.Html); }

好了,這篇和上一篇文章就基本上實現了WebQQ的基本功能,

為了保持QQ一直在線我們比如一定時間向服務器發送心跳請求,心跳請求的返回值就是我們收到的消息,這個是很重要的所以想對群消息進行處理的話都需要在這里處理它

public void HeartBreak() { /* Dictionary<string, Object> r = new Dictionary<string, Object>(); r.Add("clientid", this.clientid); r.Add("psessionid", this.psessionid); r.Add("key", 0); r.Add("ids", "[]"); Dictionary<string, Object> data = new Dictionary<string, Object>(); data.Add("r", JsonConvert.SerializeObject(r)); data.Add("clientid", this.clientid); data.Add("psessionid", this.psessionid); string postdata2 = Tool.MakePostData(data); */ string postdata = "r=%7B%22clientid%22%3A%22{$clientid}%22%2C%22psessionid%22%3A%22{$psessionid}%22%2C%22key%22%3A0%2C%22ids%22%3A%5B%5D%7D&clientid={$clientid}&psessionid={$psessionid}"; postdata=postdata.Replace("{$clientid}",this.clientid); postdata = postdata.Replace("{$psessionid}", this.psessionid); HttpItem item = new HttpItem() { URL = "http://d.web2.qq.com/channel/poll2", Method = "POST", IsToLower = false, Timeout = 100000, Postdata = postdata, Host = HOST[0], Referer = REFERER[0], UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36",//用戶的瀏覽器類型,版本,操作系統 可選項有默認值 ContentType = "application/x-www-form-urlencoded", ResultType = ResultType.String }; HttpResult result = http.GetHtml(item); JObject ret = (JObject)JsonConvert.DeserializeObject(result.Html); JObject retjson = (JObject)ret["result"][0]; if (retjson["poll_type"].ToString() == "group_message") { JObject msg = (JObject)retjson["value"]; ProcessMsg(msg); } Thread.Sleep(2000); }

在發送信息的上面還有一些可以拓展的,比如圖片等,我這一部分還沒有研究,如果有誰做過的話希望分享一下咯

 

 


 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品成人在线观看 | 99亚洲| 欧美亚洲三区 | 久久精品成人一区二区三区蜜臀 | 黄色一级毛片免费 | 免费国产一区 | 国产精品久久一区二区三区, | 国产毛片视频 | 99re在线视频 | 四季久久免费一区二区三区四区 | 国产成人a亚洲精品 | 国产尤物av | 亚洲一区二区三区四区五区六 | 久久国产精品99久久久久久牛牛 | 欧美一区二区三区在线观看视频 | 91中文字幕在线视频 | 国产探花一区二区 | 黄色大片儿. | 黄色一级片a | 国产精品久久久久久中文字 | 五月婷婷激情视频 | 久久久久久国产 | 欧美精品www | 精品一区二三区 | 国产精品久久久久久久久久久久 | 久久久精品国产 | 在线的av | 中文字幕免费在线观看 | 亚洲欧美视频一区 | 玖玖国产| 免费成人在线观看视频 | 成人精品在线 | 国产区在线看 | 精品久久久av | 亚洲午夜在线观看 | 国产精品高清在线观看 | 激情av在线播放 | av网站免费线看 | 亚洲v日韩v综合v精品v | 精品一区二区三区日产乱码 | 在线精品亚洲欧美日韩国产 |