欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > C# 企业微信机器人推送消息 windows服务应用程序的使用

C# 企业微信机器人推送消息 windows服务应用程序的使用

2025/11/11 12:01:53 来源:https://blog.csdn.net/qq_34773597/article/details/143226120  浏览:    关键词:C# 企业微信机器人推送消息 windows服务应用程序的使用

@C# 企业微信机器人推送消息
先添加一个机器人!
在这里插入图片描述

然后查看机器人就可以得到一个 webhook
特别特别要注意:一定要保护好机器人的webhook地址,避免泄漏!

然后开始写代码 ,只需要httpPost 调用一下这个地址就可以发送消息了。
首先我们创建服务项目,可以更好的定时发送
在这里插入图片描述

设置服务的属性
在这里插入图片描述
在这里插入图片描述
服务添加完成后可以写一个批处理文件去安装服务 使用微软的installutil 去安装服务
在程序debug目录 创建一个文本文件 扩展名改为bat就可以,然后把下面内容复制进去。最后以管理员方式运行
%~dp0 获取当前目录
WindowsService1.exe 项目的名称 根据实际情况定
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe %~dp0WindowsService1.exe pause
运行成功后可以看到有我们刚刚创建好的服务
在这里插入图片描述

以上是windows服务程序的安装。 接下来我们写推送消息的实现

先写一个post请求的方法

   private static string HttpPost(string url, string body){try{Encoding encoding = Encoding.UTF8;HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request.Method = "POST";request.Accept = "text/html, application/xhtml+xml, */*";request.ContentType = "application/json";byte[] buffer = encoding.GetBytes(body);request.ContentLength = buffer.Length;request.GetRequestStream().Write(buffer, 0, buffer.Length);HttpWebResponse response = (HttpWebResponse)request.GetResponse();using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)){return reader.ReadToEnd();}}catch (Exception){}return "";}

然后是我们请求的内容 ,使用json格式更方便 于是我创建了一个请求的类 最后转换成json就可以

    class RequestModel{public string msgtype { get; set; } = "text";public text text { get; set; } = new text();}class text{/// <summary>/// 发松的内容/// </summary>public string content { get; set; } = "广州今日天气:29度,大部分多云,降雨概率:60%";public string mentioned_list { get; set; } = "@all";}

最后我们写一个方法去调用,使用 JsonConvert可以把实体类转换成Json格式
需要下载Newtonsoft.Json.dll 可以鼠标右键在nuget管理包中搜索下载

        /// <summary>/// 机器人发送消息/// </summary>/// <param name="message"></param>public static void WeChatRobot(string message){try{RequestModel request = new RequestModel();request.text.content = message;string json = JsonConvert.SerializeObject(request);string webhookUrl = "这里填写机器人的webhook 可以在机器人信息那里查看";string response = string.Empty;while (string.IsNullOrEmpty(response)){//3s请求一次 直到请求成功response = HttpPost(webhookUrl, json);Thread.Sleep(3000);}File.AppendAllText("D:\\Response.txt", response);}catch (Exception){throw;}}

最后我们在服务启动里面调用这个机器人发送的方法就可以
判断每周五发送消息

 protected override void OnStart(string[] args){Task.Factory.StartNew(() =>{while (true){DayOfWeek DayOfWeek = DateTime.Now.DayOfWeek;if (DayOfWeek == DayOfWeek.Friday){Services.WeChatRobot($"今天是{DayOfWeek}");break;}Thread.Sleep(1000);}});}protected override void OnStop(){}

程序有改动,只需要重新生成程序。 在安装一遍服务就可以。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词