예제 #1
0
        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);
        }
예제 #2
0
        /// <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("");
     }
 }
예제 #4
0
        /// <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);
        }