bgwu666 发表于 2024-9-2 01:30

利用企业微信机器人API实现定时推送消息

本帖最后由 bgwu666 于 2024-9-2 01:40 编辑

# 利用企业微信机器人API实现定时推送消息   

最近有坛友想定时推送消息到企业微信群,代替手动发送以节省时间,以前有过接触Server酱的经历,也一直在使用备用机安装短信转发器推送短信到微信,看了一圈下来,如果简单推送消息,使用企业微信机器人API即可完成任务。

## 搭建流程

### 创建企业及机器人

1. 打开企业微信APP,创建新企业,填写相关信息。

2. 打开「企业微信APP」,找到预推送消息到企业群,点击「右上角...」进入群详情,点击「群机器人」,点击「添加机器人」,点击「新建」,输入机器人信息,点击「添加」,复制得到的Webhook地址备用。

![](https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020107247.jpg)

   具体消息推送格式参见:[群机器人配置说明](https://developer.work.weixin.qq.com/document/path/91770)

   这里例举一个简单的Markdown格式消息推送PowerShell脚本:

   ```powershell
   # 企业微信机器人的Webhook URL
   $webhookUrl = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=这里填入你的key"
   
   # 消息内容,使用Markdown格式
   $markdownContent = @"
   {
       "msgtype": "text",
       "markdown": {
         "content": "# 标题\n这是一条Markdown格式的消息。\n> 引用文本\n- 列表项1\n- 列表项2\n"
       }
   }
   "@
   
   # 将Markdown内容转换为字节数组
   $byteArray = ::UTF8.GetBytes($markdownContent)
   
   # 创建一个HTTP请求
   $headers = @{
       "Content-Type" = "application/json"
   }
   Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $byteArray -Headers $headers
   ```

   运行截图:

   ![运行截图](https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020041877.png)

   

![](https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020108576.jpg)

### 配置定时发送程序

这里使用Windows自带的计划任务实现定时发送

1. 保存我上面贴出的代码,修改好**Key**、**发送内容**,保存为后缀为`.ps1`的脚本。

   !(https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020111821.png)

2. 点击「搜索」,输入「任务计划程序」,打开任务计划程序。

   !(https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020113054.png)

3. 点击「创建基本任务」,填入任务名称,触发器按要求选择,我这里选择「每天」,设定触发时间,操作选择「启动程序」,在程序与脚本页面选择「刚保存的脚本」,点击「完成」即可。

   !(https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020119406.png)

   !(https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020119822.png)

   !(https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020119377.png)

   !(https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020119278.png)

   !(https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020119185.png)

   !(https://isjingbincn-wordpress-image.oss-cn-beijing.aliyuncs.com/202409020120636.png)

   

完成上述操作后,电脑就会每天在设定的触发时间自动运行脚本,完成消息推送。

## 写在最后

本文讲述了如何使用企业微信创建企业并添加企业机器人,利用PowerShell脚本配合Windows任务计划程序完成消息到定时推送。我示范的发送程序是PowerShell,理论上任何可以发送Post请求的程序或编程语言都可以实现上述功能,例如Curl、Python的Requests模块、java等。此外,我仅示范了Markdown的发送,对于Markdown的其他语法,或者发送纯文本、图片、卡片等消息格式,请参考[群机器人配置说明](https://developer.work.weixin.qq.com/document/path/91770)。

顺便提一下,论坛对于Markdown的支持太差了,图片大小居然没办法调整。。。

bgwu666 发表于 2024-9-2 02:27

一剑飘零 发表于 2024-9-2 02:21
不是群里。就是单对单发。我要发100个人。路径是工作台---群发助手,这个功能是有,需要手动点。我就想能 ...

我理解你的意思,用自己的账号给群里的某些人单独发送消息,没错吧
这样目前做不到,最多能做到,使用创建好的应用,给群里的某些人单独发消息。而这样就需要域名+服务器以通过企业微信验证。
我帖子里的内容,是使用企业微信自带机器人,最多可以@多个群成员,在群里发送消息,并不能实现私聊。

一剑飘零 发表于 2024-9-2 02:32

bgwu666 发表于 2024-9-2 02:27
我理解你的意思,用自己的账号给群里的某些人单独发送消息,没错吧
这样目前做不到,最多能做到,使用创 ...

不是的。比如我有100个好友。都是我的客户。我可以群发消息。就是一起发的意思,不在群里。如果你有企业微信你可以看一下。不是发群里@,就是一个消息发给N个人。有这功能,但是需要每次手点。

Chanlong 发表于 2024-9-2 01:43

WOW,感谢楼主热心分享,!!谢谢!

刘稳当 发表于 2024-9-2 01:48

感谢楼主的热心分享,这用的是什么机器人

bgwu666 发表于 2024-9-2 01:54

刘稳当 发表于 2024-9-2 01:48
感谢楼主的热心分享,这用的是什么机器人

企业微信自带的机器人

wycs8866 发表于 2024-9-2 01:58

感谢分享,企业微信自带机器人了

一剑飘零 发表于 2024-9-2 02:06

有没有那种1对多的。比如我有100个客户。我需要群发一下,企业微信有这个功能。但是不能定时。能不能通过API调用一下群发命令,来给这100个人定时发送消息。

bgwu666 发表于 2024-9-2 02:17

一剑飘零 发表于 2024-9-2 02:06
有没有那种1对多的。比如我有100个客户。我需要群发一下,企业微信有这个功能。但是不能定时。能不能通过AP ...

这个方法只能在群里@,如果想群发私聊消息,需要你有自己的服务器,域名,用另一种办法创建机器人,你看看你能满足条件不

一剑飘零 发表于 2024-9-2 02:21

bgwu666 发表于 2024-9-2 02:17
这个方法只能在群里@,如果想群发私聊消息,需要你有自己的服务器,域名,用另一种办法创建机器人,你看 ...

不是群里。就是单对单发。我要发100个人。路径是工作台---群发助手,这个功能是有,需要手动点。我就想能不能不手动点。
页: [1] 2 3 4 5
查看完整版本: 利用企业微信机器人API实现定时推送消息