C#公众号通过第三方平台向关注用户推送消息

一、获取自己的appToken:接创建应用WxPusher微信推送服务

二、代码部分 傻瓜式教程,全程把appToken替换即可

private void button1_Click(object sender, EventArgs e)
        {
            //此部分为获取用户uid
            //要访问的接口地址
            //此处要把appToken=后面的替换为自己的appToken
            String Url = "http://wxpusher.zjiecode.com/api/fun/wxuser/v2?appToken=用自己的appToken&page=1&pageSize=10"; //GET请求
            //存储接口返回的数据
            string result = "";
            //Web请求
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
            req.Method = "GET";//请求方式
            req.ContentLength = 0;//一定要添加这句
                                  //获取接口返回值
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            //以流的方式读取返回的数据
            Stream stream = resp.GetResponseStream();
            //获取内容
            using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
            {
                result = reader.ReadToEnd();//如果接口返回的是json字符串,那么这里就是对应的json字符串
            }
            //解析返回的json数据
            JObject obj = Newtonsoft.Json.Linq.JObject.Parse(result);
            JObject oo = Newtonsoft.Json.Linq.JObject.Parse(obj.GetValue("data").ToString());
            string PostUrl = "http://wxpusher.zjiecode.com/api/send/message";
            string appToken = "用自己的appToken"; //自己的appToken
            string content = "小崽子在干嘛呢";//内容
            string summary = "哈喽";//标题
            string contentType = "1";//1代表发送内容为文字
            JObject patientinfo = new JObject();
            //创建uids数组 发送多人
            JArray uids = new JArray();
            for (int i = 0; i <oo.Count-1; i++)
            {
                uids.Add(oo["records"][i]["uid"].ToString());
            }
            patientinfo["uids"] = uids;
            patientinfo["appToken"] = appToken;
            patientinfo["content"] = content;
            patientinfo["summary"] = summary;
            patientinfo["contentType"] = contentType;
            string sendData = JsonConvert.SerializeObject(patientinfo);
            //eg:  发送Url需要的格式:sendData={"ids":[123],"Name":小黑}
            string resultData = Post(sendData, PostUrl);
        }

        public string Post(string parameterData, string serviceUrl, string ContentType = "application/json", string Accept = "application/json")
        {
            //先根据用户请求的uri构造请求地址
            //string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
            //创建Web访问对象
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
            //把用户传过来的数据转成“UTF-8”的字节流
            byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(parameterData);
            myRequest.Method = "POST";
            //myRequest.Accept = "application/json";
            //myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded 
            myRequest.AutomaticDecompression = DecompressionMethods.GZip;
            myRequest.Accept = Accept;
            //myRequest.ContentType = ContentType;
            myRequest.ContentType = "application/json; charset=UTF-8";
            myRequest.ContentLength = buf.Length;
            myRequest.MaximumAutomaticRedirections = 1;
            myRequest.AllowAutoRedirect = true;
            //myRequest.Headers.Add("content-type", "application/json");
            //myRequest.Headers.Add("accept-encoding", "gzip");
            //myRequest.Headers.Add("accept-charset", "utf-8");
            //发送请求
            Stream stream = myRequest.GetRequestStream();
            stream.Write(buf, 0, buf.Length);
            stream.Close();
            //通过Web访问对象获取响应内容
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
            //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
            string returnData = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
            reader.Close();
            myResponse.Close();
            return returnData;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值