public static string SendMessage(uint uin, string content, Font font, Color color, string clientid, string pessionid) { StringBuilder sb = new StringBuilder(400); sb.Append("r={\"to\":"); sb.Append(uin); sb.AppendFormat(",\"face\":{0},", 606); sb.AppendFormat("\"content\":\"[\\\"{0}\\\",", Encode.ToUnicodeString(content, true)); sb.Append("[\\\"font\\\","); sb.Append("{\\\"name\\\":"); sb.AppendFormat("\\\"{0}\\\",", Encode.ToUnicodeString(font.Name, true)); sb.AppendFormat("\\\"size\\\":"); sb.AppendFormat("\\\"{0}\\\",", font.Size); sb.AppendFormat("\\\"style\\\":"); sb.AppendFormat("[{0}],", Tool.GetFontStyle(font)); sb.Append("\\\"color\\\":\\\""); sb.Append(Tool.GetColor(color)); sb.Append("\\\"}]]\","); sb.Append("\"msg_id\":"); sb.AppendFormat("{0},", Tool.GetRandomNumber(8)); sb.Append("\"clientid\":"); sb.AppendFormat("\"{0}\",", clientid); sb.Append("\"psessionid\":"); sb.AppendFormat("\"{0}\"", pessionid); sb.Append("}&clientid="); sb.Append(clientid); sb.AppendFormat("&psessionid={0}", pessionid); return(HttpUtility.UrlDecode(sb.ToString())); }
private static KickMessage GetKiMessage(string[] array, int index) { string item = string.Empty; KickMessage value = new KickMessage(); for (int i = index; i < array.Length; i++) { item = array[i]; string[] a = item.Split(':'); if (a.Length > 1) { switch (a[0]) { case "value": value.Way = a[2]; break; case "show_reason": value.ShowReason = int.Parse(a[1]); break; case "reason": value.Reason = Encode.DeUnicode(a[1]); break; default: break; } } } return(value); }
/// <summary> /// 使用条件查找群. /// </summary> /// <param name="key">关键词.</param> /// <returns></returns> public string SearchGroupByKey(string key) { StringBuilder sb = new StringBuilder(150); sb.Append("http://cgi.web2.qq.com/keycgi/qqweb/group/search.do?pg=1&perpage=10&all="); sb.Append(Encode.ToUnicodeString(key)); sb.AppendFormat("&c1=0&c2=0&c3=0&st=0&vfcode=&type=1&vfwebqq={0}&t={1}", _VFWebQQ, Tool.GetRandomNumber(10)); _HttpWeb.Referer = "http://d.web2.qq.com/proxy.html?v=20110331002&callback=1&id=2"; return(_HttpWeb.SendToText(sb.ToString())); }
/// <summary> /// 发送消息. /// </summary> /// <param name="uin">指定的QQ的Uin</param> /// <param name="content">消息的内容.</param> /// <param name="font">字体.</param> /// <param name="color">颜色.</param> /// <returns></returns> public bool SendMessage(string uin, string content, Font font, Color color) { try { StringBuilder sb = new StringBuilder(400); sb.Append("r={\"to\":"); sb.Append(uin); sb.AppendFormat(",\"face\":{0},", 606); sb.AppendFormat("\"content\":\"[\\\"{0}\\\",", Encode.ToUnicodeString(content, false)); sb.Append("[\\\"font\\\","); sb.Append("{\\\"name\\\":"); sb.AppendFormat("\\\"{0}\\\",", Encode.ToUnicodeString(font.Name, true)); sb.AppendFormat("\\\"size\\\":"); sb.AppendFormat("\\\"{0}\\\",", font.Size); sb.AppendFormat("\\\"style\\\":"); sb.AppendFormat("[{0}],", Tool.GetFontStyle(font)); sb.Append("\\\"color\\\":\\\""); sb.Append(Tool.GetColor(color)); sb.Append("\\\"}]]\","); sb.Append("\"msg_id\":"); sb.AppendFormat("{0},", GetSendNumber()); sb.Append("\"clientid\":"); sb.AppendFormat("\"{0}\",", _ClientID); sb.Append("\"psessionid\":"); sb.AppendFormat("\"{0}\"", _PsessionID); sb.Append("}&clientid="); sb.Append(_ClientID); sb.AppendFormat("&psessionid={0}", _PsessionID); //string data = Encode.HttpUrlEncode(sb.ToString()); string data = HttpUtility.UrlDecode(sb.ToString()); _HttpWeb.Referer = HttpText.SendMessageReferer; string text = _HttpWeb.PostWebRequest("http://d.web2.qq.com/channel/send_buddy_msg2", data, Encoding.UTF8); if (text.IndexOf("result") > -1) { return(true); } else if (text.IndexOf("未能解析此远程名称") > -1) { //通知下线. } else { return(false); } } catch (Exception ex) { Loger.WriteLog(ex); } return(false); }
private static FriendMessageData GetFriendMessage(JSONObject obj) { FriendMessageData data = new FriendMessageData(); data.MsgID = obj.GetString("msg_id"); data.MsgID2 = obj.GetString("msg_id2"); data.MsgType = int.Parse(obj.GetString("msg_type")); data.ReplyIP = obj.GetString("reply_ip"); data.FromUin = obj.GetString("from_uin"); data.ToUin = obj.GetString("to_uin"); JSONArray content = obj.GetJSONArray("content"); foreach (var item in content) { if (item is string) { string text = item.ToString(); if (text.IndexOf("\\u") > -1) { text = Encode.DeUnicode(text); } data.Content.Add(text); } else if (item is JSONArray) { JSONArray array = item as JSONArray; string flag = array[0].ToString(); if (flag == "face") { data.Content.Add(string.Format("[face{0}]", array[1])); } //JSONArray font = item as JSONArray; //foreach (var sitem in font) //{ // if(sitem is JSONObject ) // { // JSONObject temp = sitem as JSONObject; // data.Color = Tool.GetColor(temp.GetString("color")); // } //} } } return(data); }
/// <summary> /// 申请加入指定的群. /// </summary> /// <param name="groupCode">群号码.</param> /// <param name="msg">验证的消息</param> /// <param name="vfy" >验证码令牌</param> /// <returns></returns> public string ApplyJoinGroup(string groupCode, string msg, string vfy) { StringBuilder sb = new StringBuilder(200); sb.Append("r=%7B%22gcode%22%3A"); sb.Append(groupCode); sb.Append("%2C%22code%22%3A%22mhtv%22%2C%22vfy%22%3A%"); sb.Append(vfy); //vfy sb.Append("%22%2C%22msg%22%3A%22"); sb.Append(Encode.ToUnicodeString(msg)); //msg sb.Append("%22%2C%22vfwebqq%22%3A%"); sb.Append(_VFWebQQ); sb.Append("%22%7D"); _HttpWeb.Referer = " http://s.web2.qq.com/proxy.html?v=20110412001&callback=1&id=3"; return(_HttpWeb.PostWebRequest("http://s.web2.qq.com/api/apply_join_group2", sb.ToString(), Encoding.UTF8)); //{"retcode":0,"result":{"statu":"pending"}} }
private static GroupMessageData GetGroupMessage(JSONObject obj) { GroupMessageData data = new GroupMessageData(); data.MsgID = obj.GetString("msg_id"); data.MsgID2 = obj.GetString("msg_id2"); data.MsgType = int.Parse(obj.GetString("msg_type")); data.ReplyIP = obj.GetString("reply_ip"); data.FromUin = obj.GetString("from_uin"); data.ToUin = obj.GetString("to_uin"); data.SendUin = obj.GetString("send_uin"); data.Seq = obj.GetString("seq"); data.Time = obj.GetString("time"); data.InfoSeq = obj.GetString("info_seq"); data.GroupCode = obj.GetString("group_code"); JSONArray content = obj.GetJSONArray("content"); foreach (var item in content) { if (item is string) { string text = item.ToString(); if (text.IndexOf("\\u") > -1) { text = Encode.DeUnicode(text); } data.Content.Add(text); } else if (item is JSONArray) { JSONArray array = item as JSONArray; string flag = array[0].ToString(); if (flag == "face") { data.Content.Add(string.Format("[face{0}]", array[1])); } else if (flag == "font") { } } } return(data); }
/// <summary> /// 发送群消息. /// </summary> /// <param name="groupUin"></param> /// <param name="content"></param> /// <param name="font"></param> /// <param name="color"></param> /// <returns></returns> public string SendGroupMessage(string groupUin, string content, Font font, Color color) { StringBuilder sb = new StringBuilder(400); sb.AppendFormat("r={\"group_uin\":{0}", groupUin); sb.AppendFormat(",\"content\":\"[\\\"{0}\\\",", Encode.ToUnicodeString(content)); sb.Append("[\\\"font\\\","); sb.Append("{\\\"name\\\":"); sb.AppendFormat("\\\"{0}\\\",", Encode.ToUnicodeString(font.Name)); sb.AppendFormat("", font.Size); sb.AppendFormat("", Tool.GetFontStyle(font)); sb.AppendFormat("", Tool.GetColor(color)); sb.AppendFormat("", GetSendNumber()); sb.AppendFormat("", _PsessionID); sb.AppendFormat("", _ClientID); sb.AppendFormat("", _PsessionID); return(null); }
/// <summary> /// 发送好友验证消息. /// /// </summary> /// <param name="qqnumber">qq号码</param> /// <param name="msg">验证消息</param> /// <param name="token">令牌</param> /// <returns></returns> public string AddNeedVerify(string qqnumber, string msg, string token) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("r=%7B%22account%22%3A{0}", qqnumber); sb.Append("%2C%22myallow%22%3A1%2C%22groupid%22%3A0%2C%22msg%22%3A%22"); sb.Append(Encode.ToUnicodeString(msg)); sb.Append("%22%2C%22token%22%3A%22"); sb.Append(token); sb.Append("%22%2C%22vfwebqq%22%3A%"); sb.Append(_VFWebQQ); sb.Append("%22%7D"); _HttpWeb.Referer = "http://s.web2.qq.com/proxy.html?v=20110412001&callback=1&id=1"; return(_HttpWeb.PostWebRequest("http://s.web2.qq.com/api/add_need_verify2", sb.ToString(), Encoding.UTF8)); }
private static FriendMessageData GetFriendMessage(string[] array, int index) { string item = string.Empty; FriendMessageData value = new FriendMessageData(); string name = string.Empty; int size = 10; string style = string.Empty; for (int i = index; i < array.Length; i++) { item = array[i]; string[] a = item.Split(':'); if (a.Length > 1) { switch (a[0]) { case "value": if (a.Length > 2) { value.MsgID = a[2]; } break; case "from_uin": value.FromUin = a[1]; break; case "msg_id2": value.MsgID2 = a[1]; break; case "msg_type": value.MsgType = int.Parse(a[1]); break; case "reply_ip": value.ReplyIP = a[1]; break; case "time": value.Time = a[1]; break; case "to_uin": value.ToUin = a[1]; break; case "color": value.Color = Tool.GetColor(a[1]); break; case "name": name = Encode.DeUnicode(a[1]); break; case "size": size = int.Parse(a[1]); break; case "style": style = string.Format("{0}{1}{2}", a[1], array[i + 1], array[i + 2]); i = i + 2; break; default: break; } } else { //Debug.WriteLine(item); if (item.IndexOf("\\u") > -1) { string t = Encode.DeUnicode(item); value.Content.Add(t.Replace("\r", "\r\n")); } else { value.Content.Add(item); } } } return(value); }