目录

一、背景

二、企业微信注册与配置

1.注册

2.配置

(1)加入企业

(2)开启微信插件

(3)测试是否能在微信接收消息

三、方法一 通过自建应用发送消息

1.添加自建应用

2.获取应用接口凭证(access_token)

(1)获取企业id(corp_id)

​编辑(2)获取应用的Secret

(3)获取access_token

3.配置ip白名单和可信域名

(1)配置可信域名

(2)配置可信ip白名单

4.发送消息

(1)获取应用id(agent_id)

(2)发送消息

四、方法二 企业微信机器人推送

(1)创建与添加机器人

(2)发送消息

五、小结


一、背景

最近在研究给女朋友推送每日课表,一开始是使用 微信公众号接口测试号 来推送的,但是现在公众号消息展示改了,不会显示在消息列表,而是隐藏在“订阅号消息”里面,不仔细看都看不到,很容易被忽略,如下图:

所以就一直在找其他方法,想到了企业微信 - 可以显示在微信消息主页,且提醒很明显,如下图。

        效果示例

下面讲两种方法进行推送。注意:如果你想每日定时推送,需要有自己的服务器,或者使用阿里云函数

二、企业微信注册与配置

1.注册

每个人都可以注册企业微信(免费版企业最大人数是200人,不认证不会影响api使用,足够我们个人使用了)

网址: 企业微信 (qq.com)  注册:

同时,手机或电脑下载企业微信客户端 

2.配置

(1)加入企业

注册成功后进入管理后台。让自己和想要推送的人加入企业

(2)开启微信插件

为了让我们的企业微信能直接在微信上看,需要开启微信插件

(3)测试是否能在微信接收消息

 能在微信正常收到公告就代表已经成功进入企业,且成功使用微信插件

三、方法一 通过自建应用发送消息

注:这个方法需要的要求- 有自己的服务器和域名(且服务器ip为固定ip,域名通过ICP备案)

不符合要求的可以看方法二

示例图:

1.添加自建应用

按照下图添加即可

 

2.获取应用接口凭证(access_token)

这个凭证可以拥有该应用的全部权限,请妥善保管,不要在前端暴露access_token和secret

(1)获取企业id(corp_id)

这个页面拉到最底部

(2)获取应用的Secret

回到应用管理页面,找到我们刚刚的自建应用,点开,就能看到secret了

 发送后,打开企业微信客户端(必须是企业微信,不能是微信),在里面找到“企业微信团队”发给你的secret

(3)获取access_token

向https://qyapi.weixin.qq.com/cgi-bin/gettoken 发送get请求,query参数为刚刚获取的企业id和应用密匙        (参考文档 获取access_token - 文档 - 企业微信开发者中心 (qq.com))

以下是nodejs示例 (注意,access_token有效期为两小时,可以缓存起来,减少请求次数)

官方文档的代码中有一处错误,我改正过来了 (请求参数名写错)


const corp_id = '';// 企业 corp_idconst secret = ''// 当前应用的 secret
// 获取的 access_token
let {data} = await axios.get(`https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=${corp_id}&corpsecret=${secret}`);
let {access_token}= data;
if(access_token){console.log('获取 access_token 成功',access_token);
}
else{res.render('error');
}

3.配置ip白名单和可信域名

这一步很关键,官方文档并没有说明,不配置的话,即使有access_token也做不了任何事(这是2022年6月新增的规定,在此之前的自建应用不需要这些限制) 。在应用管理-我们的自建应用界面,拉到最下面,可以看到配置入口。

(1)配置可信域名

输入经过ICP备案的域名,然后点击申请校验

然后就会出现校验流程,下载文件后,放到自己的域名根目录下

放好文件后部署,然后点击确定按钮,提示成功即可。

(2)配置可信ip白名单

在这里面输入你的服务器的ip

4.发送消息

(1)获取应用id(agent_id)

在自建应用界面,可以复制应用id

(2)发送消息

POST请求,nodejs示例如下:   (除了文本消息,还可以发送多种颜色的图片、卡片等,这里不一一介绍了,详情可以看官方文档 发送应用消息 - 文档 - 企业微信开发者中心 (qq.com))


const agent_id = '1000063';// 自建应用的 agent_idconst access_token = 'xxxxxx';// access_tokenlet {data:message_data} = await axios.post(`https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${access_token}`,{"touser" : '@all',//意思是发给所有人"agentid" : agent_id,"msgtype" : "text",//类型为文本,可以是其他的,详情可见官方文档"text" : {"content" : `Hello World!` //里面填写文本},
});

在content里面,可以填写你通过请求其他api获得的天气数据(比如百度天气api),也可以输入自己的数据(比如女朋友的课表)

参数列表:放在请求体中

四、方法二 企业微信机器人推送

如果你的服务器ip不是固定的话,上面的方法不适合你使用(因为需要配置ip白名单)

下面讲的这个方法可以适用于所有人 - 如果你没有自己的服务器,可以使用阿里云函数来发送推送

(1)创建与添加机器人

打开企业微信手机客户端  ,进入全员群(只要你加入了企业,就会自动进入这个群),点击右上角进入详情,选择“群机器人”

然后进入,点击右上角“添加”,然后进入后再点右上角“新建”,然后输入机器人名字,即可新建一个机器人。建立成功后,会给你一个Webhook地址,保管好不要泄露 ,然后添加到群

(2)发送消息

向刚刚的Webhook地址发送post请求,所需参数放在body里

下面是nodejs发送文本消息代码示例(下面代码的key,包含在刚刚给你的Webhook了)

robot: async (content) => {//参数为内容return new Promise(async (resolve, reject) => {try {const params = {method: 'POST',url: `https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx`,//在这里填你的keyheaders: { 'Content-Type': 'application/x-www-form-urlencoded' },data: JSON.stringify({//携带的数据"msgtype": "text","text": {content,}}),}const { data } = await axios(params)if (data.errcode == 0) {resolve(data)} else {reject(data.errmsg || '发送失败')}} catch (error) {reject(error.message || error)}})},

除了文本消息,还能发送很多东西,详情查看官方文档 群机器人配置说明 - 文档 - 企业微信开发者中心 (qq.com)

五、小结

上面讲述了如何进行推送,推送的内容你们可以自行发挥(天气、课表、早安问候语、每日图片等)

如果你没有资金购买自己的服务器,可以尝试使用 vercel(免费) +自己购买的域名(新用户几块钱就能买一年)关于vercel 的使用可以自行搜索其他内容(注:vercel无法使用定时任务,因为云函数只有在请求它时才会运行,可以使用GitHub Actions定时向vercel上的云函数请求)

如果还有不明白的地方可以在评论区问我,有哪里错误的也请及时告知我,谢谢大家~

超详细 企业微信推送每日天气或课表(所有东西都可推送)相关推荐

  1. 企业微信群机器人每日天气提醒(shell + crontab)

    介绍: 使用 shell 获取当地天气,并调用企业微信机器人发送当天天气情况. 一.新建创建机器人,获取 webhook 地址 准备一个企业微信群,并右键选择「添加群机器人」 选择创建群机器人 填写名 ...

  2. 手把手带你用python+和风天气+腾讯云函数+qmsg实现定时推送每日天气

    文章目录 ✨项目前言

  3. 企业微信添加机器人播报天气

    <==前面这篇已经写了定时提醒吃饭的了,但是定时吃饭每天都是固定的那些字,所以后面又想着搞个天气播报,增加点花样,有意思嘛,活着开心点

  4. 企业微信推送天气、课表、纪念日、每日一句等(含源码和详细步骤)

    目录 一.引言与源码 二.企业微信的注册与配置 1.注册 2.配置 (1)加入企业 (2)开启微信插件 (3)测试是否能在微信接收消息 3.创建机器人 三.推送天气模块 (1)注册 (2)创建项目 ( ...

  5. tp5框架实现推送消息到企业微信机器人(从需求分析、方案设计、研发阐述)

    需求 目前需要接入消息推送的模块是任务中心,原因是任务中心是多人协作处理某个特定小组内的所有分析任务,在整个分析的过程中,一个任务的生命周期会经历若干个关键的状态节点, 当分析师或审批人触发了相关动作 ...

  6. 企业微信推送消息延迟_一种基于企业微信的消息推送方法与流程

    本发明涉及消息推送技术领域,特别涉及一种基于企业微信的消息推送方法. 背景技术: 随着微信公众号的普及,微信企业号也越来越受到人们的关注.而腾讯公司在微信企业号的基础上又进行了进一步的升级,提供了类似 ...

  7. SAP 接口主动推送企业微信异常消息

    "推送企业微信格式lv_json = '{ "msgtype": "markdown", "markdown": ' && ...

  8. 持续集成之群聊机器人消息推送:钉钉 vs 企业微信

    企业微信和钉钉都有面向群的消息推送机器人,两者的使用非常相近,也有一些细节上的特性的区别,这篇文章将结合前面的使用示例进行总结. 使用方式 不同点 企业微信:先创建群,然后在群中添加机器人,可添加多个 ...

  9. vuewebsocket做消息提醒_企业微信群怎么定时群发消息?如何突破群发次数限制?...

    文丨语鹦企服私域管家原创,未经授权不得转载 我们在使用企业微信做营销时,经常需要给客户群发通知或活动福利.企业微信提供多客户群群发工具,只需一键群发,即可通知到所有群.但遇上节假日或者忙碌的时候,定时 ...

最新文章

  1. python lambda表达式的使用方法(匿名函数)
  2. 地图上的三国(一口气看完15幅地图)
  3. Spring+Hibernateh使用小结
  4. vb mysql ado_VB中的ADO数据对象编程详解
  5. c语言时钟报告,C语言图形时钟课程设计实验报告
  6. pandas操作sql数据库
  7. 本机tomcat的server.xml被还原的问题及解决办法
  8. 耐人寻味的 8 幅Java技术图
  9. 边工作边刷题:70天一遍leetcode: day 45-1
  10. css基础--滤镜特效
  11. java正则匹配性能,Java正则表达式的性能问题
  12. 存储服务器格式化恢复方法
  13. 车辆路径问题之jsprit(一):认识jsprit
  14. Qt 界面美化教程 QSS QML Qt自绘方式优缺点对比
  15. 如何将pdf转换成word的3种免费方法
  16. C判断tic tac toe输赢
  17. 虚拟机非正常关闭,里面的服务器重启报错:Error, some other host already uses address...
  18. 5个最佳WordPress广告插件
  19. android内存问题详解--重要
  20. “贵人语迟”?孩子说话越晚越聪明?

热门文章

  1. 服务器迁移的两种方式浅谈
  2. 4天4夜渡劫成功,解决10月1项目上线遇到的一个Mysql大坑,导致项目无法正常访问
  3. 诺基亚获得首个5G大规模订单,全球正式开启5G争夺战!
  4. 十二星座匹配对象_来看十二星座最配与最不配的对象是谁
  5. Math.log()是以常数e为底数的对数
  6. Cleartext HTTP traffic to xxx not permitted解决
  7. Navicat连接mysql时出现 Access denied for user ‘root‘@‘xxx.xxx.xxx.xxx‘ (using password: YES) 的原因及解决办法。
  8. “8421码 5421码 2421码 余3码”区别
  9. Aztec协议上线:V神「匿名以太坊梦」成真
  10. css样式单位px,em,pt,ex,pc,in,mm,cm详解