public LoginRedirectResult LoginRedirect(string redirect_uri) { SetHttpHeader("Accept", "application/json, text/plain, */*"); SetHttpHeader("Connection", "keep-alive"); mHttpClient.DefaultRequestHeaders.Referrer = new Uri("https://wx.qq.com/"); string url = redirect_uri + "&fun=new&version=v2&lang=zh_CN"; string rep = GetString(url); if (rep == null) { return(null); } LoginRedirectResult result = new LoginRedirectResult(); result.pass_ticket = rep.Split(new string[] { "pass_ticket" }, StringSplitOptions.None)[1].TrimStart('>').TrimEnd('<', '/'); result.skey = rep.Split(new string[] { "skey" }, StringSplitOptions.None)[1].TrimStart('>').TrimEnd('<', '/'); result.wxsid = rep.Split(new string[] { "wxsid" }, StringSplitOptions.None)[1].TrimStart('>').TrimEnd('<', '/'); result.wxuin = rep.Split(new string[] { "wxuin" }, StringSplitOptions.None)[1].TrimStart('>').TrimEnd('<', '/'); result.isgrayscale = rep.Split(new string[] { "isgrayscale" }, StringSplitOptions.None)[1].TrimStart('>').TrimEnd('<', '/'); return(result); }
/// <summary> /// 自动回复发送消息 /// </summary> /// <param name="msg"></param> /// <param name="from"></param> /// <param name="to"></param> /// <param name="type"></param> public static string AutoSendMsg(CookieContainer myCookieContainer, string msg, string from, string to, int type, LoginRedirectResult LoginRedirectResult) { string MsgResult = String.Empty; string msg_json = "{{" + "\"BaseRequest\":{{" + "\"DeviceID\" : \"789789\"," + "\"Sid\" : \"{0}\"," + "\"Skey\" : \"{6}\"," + "\"Uin\" : \"{1}\"" + "}}," + "\"Msg\" : {{" + "\"ClientMsgId\" : {8}," + "\"Content\" : \"{2}\"," + "\"FromUserName\" : \"{3}\"," + "\"LocalID\" : {9}," + "\"ToUserName\" : \"{4}\"," + "\"Type\" : {5}" + "}}," + "\"rr\" : {7}" + "}}"; string sid = LoginRedirectResult.wxsid; string uin = LoginRedirectResult.wxuin; if (sid != null && uin != null) { msg_json = string.Format(msg_json, sid, uin, msg, from, to, type, LoginRedirectResult.skey, DateTime.Now.Millisecond, DateTime.Now.Millisecond, DateTime.Now.Millisecond); byte[] bytes = BaseService.SendPostRequest(myCookieContainer, Wx2_sendmsg_url_ + sid + "&lang=zh_CN&pass_ticket=" + LoginRedirectResult.pass_ticket, msg_json); MsgResult = Encoding.UTF8.GetString(bytes); } return(MsgResult); }
/// <summary> /// 保存接收到的 发的图片信息 /// </summary> /// <returns></returns> public static string SaveSendImgPath(CookieContainer myCookieContainer, ReceiveMessageRoot msg, LoginRedirectResult LoginRedirectResult) { try { string url = String.Empty; if (LoginRedirectResult.WxorWx2 == 0) { return(""); } if (LoginRedirectResult.WxorWx2 == 1) { url = String.Format(common.WXService.Wx_OldimgMsg, msg.AddMsgList[0].MsgId, LoginRedirectResult.skey); } if (LoginRedirectResult.WxorWx2 == 2) { url = String.Format(common.WXService.Wx2_NewImgMsg, msg.AddMsgList[0].MsgId, LoginRedirectResult.skey); } string Imgdir = System.Environment.CurrentDirectory + "\\RecvFiles\\" + LoginRedirectResult.wxuin + "\\"; string FileName = msg.AddMsgList[0].MsgId + ".jpg"; string resultPath = CommonTools.WebRequestAction.getimages(url, myCookieContainer, Imgdir, FileName); return(resultPath); } catch (Exception ex) { return(""); } }
/// <summary> /// 获得请求群组的信息 /// </summary> /// <param name="myCookiesContainer"></param> /// <param name="wxorwx2"></param> /// <returns></returns> public common.Noumenon_GetGroupUser GetGroupInfo(string GroupUserName, System.Net.CookieContainer myCookiesContainer, int wxorwx2, LoginRedirectResult loginRedirectResult) { string post_Uin = loginRedirectResult.wxuin; string post_Sid = loginRedirectResult.wxsid; string post_Skey = loginRedirectResult.skey; string post_DeviceID = CreateNewDeviceID(); string post_GroupName = GroupUserName; string ur1l = "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxbatchgetcontact?type=ex&r="; if (wxorwx2 == 1) { ur1l = "https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxbatchgetcontact?type=ex&r="; } else { ur1l = "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxbatchgetcontact?type=ex&r="; } common.Noumenon_GetGroupUser info = new common.Noumenon_GetGroupUser(); info.Url = String.Format(ur1l + "{0}&lang=zh_CN&pass_ticket={1}", getR().ToString(), loginRedirectResult.pass_ticket); info.ToUserName = GroupUserName; info.PostData = "{\"BaseRequest\":{\"Uin\":" + post_Uin + ",\"Sid\":\"" + post_Sid + "\",\"Skey\":\"" + post_Skey + "\",\"DeviceID\":\"" + post_DeviceID + "\"},\"Count\":1,\"List\":[{\"UserName\":\"" + GroupUserName + "\",\"EncryChatRoomId\":\"" + "" + "\"}]}"; return(info); }