C#使用企业微信群机器人推送生产数据
在日常的工作生产中,经常会有将将生产数据或者一些信息主动推送给相关的管理人员,我们公司在开发WMS系统时,为了仓库的储存安全,需要在危废品库存达到一定的储量时,自动通知仓管员去处理危废品,所以就需要程序自动的通过企业微信告知仓管员,这个时候就需要用到企业微信的机器人了。
现在我所知道的企业微信机器人分为两种,一种是机器人,一种是群机器人,机器人开发比较复杂,但是可以像一个企业微信账号一样可以给企业微信中的任意一个人发送信息,第二种群机器人比较简单,只能在群里推送消息。下面要讲的就是群机器人的开发。
第一步,先创建一个企业微信群(好像需要三个人才能达到建群的最小人数),添加一个群机器人,如图:

然后点击机器人的头像,记住Webhook(这个很重要,记住一定要保密,不能发到网上,不然其他人可以通过这个利用机器人给企业微信群发任何信息)

后面上代码,我写了一个方法如下:
public void WeChatRobot(string message)
{
string cttStr = "";
cttStr += "# <font color=\\\"warning\\\">"+ message + "</font>\n";
string param = "{\"msgtype\":\"markdown\",\"markdown\":{\"content\":\"" + cttStr + "\"}}";
string webhookUrl = "此处替换为企业微信群机器人的Webhook";
using (var client = new RestClient(webhookUrl))
{
var Req = new RestRequest(webhookUrl, Method.Post);
Req.AddHeader("Content-Type", "application/json");
Req.AddJsonBody(param);
var Rsp = client.ExecuteAsync(Req).Result;
}
}
代码这个地方记得替换为企业微信群机器人的Webhook

如果有报错记得引用一下RestSharp库。
将需要推送的信息赋值给该方法的message,就可以使用企业微信机器人将信息推送到群里了。
补充:下面是一些推送文字的格式,现在似乎只支持三种颜色的字体。

思考(不用看):
在生产过程中经常有订单需要返回上一步,比如有些订单在该工序已经点击生产完工了,但是由于需要补充一些生产信息,需要将订单重新返回到正在生产的状态,这在正常的生产流程中肯定是不被允许的,但是实体制造业的IT部门都是服务于生产的,无论无何都不能耽误生产,最终还是需要IT去数据库改数据,有时常常下班了还要远程电脑改订单的固定数据,就很烦,明明知道有这个需求,又不能放权写个功能让生产自己回退订单,所以就思考写一个企业微信群机器人的推送功能:
生产需要将订单退回上一步时,将订单号和回退原因填写在MES系统上,这是系统后台会生成一个随机的验证码(后台生成,MES操作员不知道),将验证码和订单号、订单回退信息、操作人和时间等信息保存在数据库,并通过企业微信群机器人将验证码和订单回退信息推送到IT群,IT评估后若允许订单回退就将验证码转发给操作员,由操作员在MES上填写验证码,确认后填写验证码与数据库保存的验证码相同时,执行订单回退操作。这样遇到订单回退的突发情况,即使电脑不在身边,也可以通过手机企业微信对订单回退进行管控,运维人员也可以少掉头发。
(使用文章请标明来源——Hello-MOMO)
C#使用企业微信群机器人推送生产数据的更多相关文章
- nodejs通过钉钉群机器人推送消息
nodejs 通过钉钉群机器人推送消息 Intro 最近在用 nodejs 写爬虫,之前的 nodejs 爬虫代码用 js 写的,感觉可维护性太差,也没有智能提示,于是把js改用ts(typescri ...
- 企业微信人员日程推送接口(python版)
企业在使用企业微信中,有时想批量推送员工日程信息.这里写了个接口工具分享给大家,供交流学习. 主入口程序: # -*- coding: utf-8 -*-import time as time imp ...
- UDP端口检查告警SHELL脚本(企业微信版机器人版)
脚本准备 0Batch_Check.sh 1port_check.sh 2wechat_bot_alert.sh CheckList CheckList #支持大/小写 10.1.1.5 Udp 53 ...
- $Django 支付宝支付,微信服务号推送消息 (测试需要把应用程序部署到服务器上)
一 支付宝支付 大概 支付宝支付 正式环境:需要用营业执照去申请商户号,appid 测试环境:沙箱环境:https://openhome.alipay.com/platform/appDaily.ht ...
- 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送
微信支付之微信模板消息推送 今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...
- C# MVC 微信支付之微信模板消息推送
微信支付之微信模板消息推送 今天我要跟大家分享的是"模板消息"的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信 ...
- 前后端分离djangorestframework—— 接入微信模板消息推送
微信 什么是微信也不多说,跟前面的支付宝一样的 微信支付 微信支付也有个沙箱环境,沙箱环境官方文档 由文档中那句很显眼的话所得,即使是测试环境也需要真实的商户号,所以这个就没法想支付宝那样用沙箱账号来 ...
- 微信消息自动推送(评论区有我改好的模板及exe一键推送文件)
方案1:腾讯云函数(企业ID+应用ID和密钥(发送密钥得下企业微信app)+自己云函数的IP固定IP详情方法在下图) 推荐使用多图,因为内容会显示的丰富(所有图片文字都可以自定义 都在评论区下面的模板 ...
- .NET之微信消息模板推送
最近在项目中使用到了微信消息模板推送的功能,也就是将对应的消息推送到对应的用户微信上去,前提是你必须要有一个微信公众号并且是付费了的才会有这个功能,还有就是要推送的用户必须是的关注了你的微信公众号的. ...
- C#微信接口之推送模板消息功能示例
本文实例讲述了C#微信接口之推送模板消息功能.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...
随机推荐
- Spring事务——传播性
传播性 事务传播行为是为了解决业务层方法之间互相调用的事务问题,当一个事务方法被另一个事务方法调用时,事务该以何种状态存在?例如新方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运 ...
- GitLab 安装部署使用
GitLab介绍 GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业.学校等内部网络搭建git私服. 功能:Gitl ...
- [智能制造] 如何利用生产软件(MES)进行生产信息收集?
1 如何保证生产管理软件所收集信息的准确性? 1.1 当前制造企业使用MES系统收集信息的现状 原以为使用了MES生产管理系统后,会得到稽核员的肯定. 但没想到,在实际的稽核过程中,稽核员还是发现目前 ...
- [操作系统/Linux]磁盘分区
0 基本概念1: 盘片/盘面/磁头/扇区/磁道/柱面 本小节摘自: 硬盘基本知识(磁头.磁道.扇区.柱面) - 博客园 一张磁盘并不是拿过来直接用,需要先分区. 磁盘本身有很多sector(扇区).c ...
- Luogu P2574 XOR的艺术 P3870 [TJOI2009]开关 P2846 [USACO08NOV]光开关Light Switching SP7259 LITE - Light Switching
四倍经验题 简单线段树qwq(那你怎么还调了好几个小时) 修改:\(ans[cur]=(r-l+1-ans[cur]);\) 点表示的区间有多长就是有多少盏灯 亮着的关掉 暗的开启 就是上述语句了. ...
- day15:递归函数&递归练习题
递归函数 递归函数的定义 : 自己调用自己的函数就是递归 递: 去 归: 回 一去一回就是递归 一个简单的递归例子 # 1.一个简单的递归例子 def digui(n): print(n,& ...
- 从ajax到跨域引发的相关面试题总结
转载请注明出处: 1.ajax异步和同步的区别 Ajax是一种基于JavaScript语言和XMLHttpRequest对象的异步数据传输技术,通过它可以使不用刷新整个页面的情况下,对页面进行部分更新 ...
- linux网络开发者定位问题常用工具和命令总结
本文章来自我的微信个人技术公众号---网络技术修炼,公众号中总结普及网络基础知识,包括基础原理.网络方案.开发经验和问题定位案例等,欢迎关注. Linux网络开发者面临的问题往往比较复杂,因此需要使用 ...
- SMBMS超市管理系统(Javaweb项目)
SMBMS超市管理系统(Javaweb项目) 项目环境 jdk 1.8.0_261 mysql 8.0.21 IDEA 2021.2.2 项目架构 数据库 项目源代码 filer 字符编码过滤器 pa ...
- 12-提取css成单独文件
const { resolve } = require('path') const HtmlWebpackPlugin = require('html-webpack-plugin') const M ...