全栈开发技术分享
首页
👉 CSS大揭秘 👈
  • 目录
  • 分类
  • 标签
  • 归档
  • Vue
  • JavaScript
  • 微信开发
  • 移动端H5调试工具
  • 国内十大前端团队网站
  • Nodejs
  • Egg
  • 环境搭建
  • 运维面板
  • 域名配置
  • Nginx
  • 收藏
  • 常用工具
  • 实用技巧
  • 常用命令
  • 友情链接
关于

Dreaming Lee 🍍 ҉҉҉҉҉҉҉҉

开发小菜鸡
首页
👉 CSS大揭秘 👈
  • 目录
  • 分类
  • 标签
  • 归档
  • Vue
  • JavaScript
  • 微信开发
  • 移动端H5调试工具
  • 国内十大前端团队网站
  • Nodejs
  • Egg
  • 环境搭建
  • 运维面板
  • 域名配置
  • Nginx
  • 收藏
  • 常用工具
  • 实用技巧
  • 常用命令
  • 友情链接
关于
  • Nodejs

    • Nodejs学习参考资料
  • Egg

    • 扩展

      • Egg使用egg-redis
      • Egg定时任务
    • 解决方案

      • Egg解决post请求报错invalid csrf token
      • Egg接口返回字段名下划线转驼峰
    • 实战

      • Egg定时任务实现企业微信群机器人定时推送
        • 效果
        • 参考资料
        • 完整DEMO源码
  • Redis

    • Redis基础知识
  • 后台
  • Egg
  • 实战
Dreaming Lee 🍍 ҉҉҉҉҉҉҉҉
2021-05-07

Egg定时任务实现企业微信群机器人定时推送

# 效果

# 参考资料

  • Egg定时任务
  • 企业微信群机器人配置说明 (opens new window)

# 完整DEMO源码

// app/schedule/demo.js
'use strict'
module.exports = {
  schedule: {
    // interval: '1m', // 1 分钟间隔
    cron: '0 55 8 * * *', // 每天上午8点55分
    type: 'all', // 类型 worker-每台机器上只有一个 worker 会执行这个定时任务,每次执行定时任务的 worker 的选择是随机的。 all-每台机器上的每个 worker 都会执行这个定时任务。
    // immediate: true, // 配置了该参数为 true 时,这个定时任务会在应用启动并 ready 后立刻执行一次这个定时任务。
    // disable: false, // 配置该参数为 true 时,这个定时任务不会被启动。
    // env: [ 'local', 'prod' ], // 数组,仅在指定的环境下才启动该定时任务。
  },
  async task(ctx) {
    const data = {
      // 要发送的数据。将自动进行字符串化
      // 当前自定义机器人支持文本(text)、markdown(markdown)、图片(image)、图文(news)四种消息类型。
      // 机器人的text/markdown类型消息支持在content中使用<@userid>扩展语法来@群成员
      msgtype: 'text',
      text: {
        // 文本内容,最长不超过2048个字节,必须是utf8编码
        content: '还有5分钟就要上班啦,记得按时打卡别迟到咯~',
        // userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list
        mentioned_list: [ '@all' ],
        // 手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人
        // mentioned_mobile_list: [ '13000000000', '@all' ],
      },
    }
    // 替换为自己添加的机器人webHook
    const webHook = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXX'
    const result = await ctx.curl(webHook, {
      method: 'POST', // 请求方法,默认为GET。可以是GET,POST,DELETE或PUT
      data,
      dataType: 'json', // 字符串-响应数据的类型。可能是text或json
      headers: { // 请求标头
        'Content-Type': 'application/json',
      },
      // timeout: '', // 请求超时
      // auth: '', // username:password在HTTP基本授权中使用
      // gzip: '', // 让您在请求连接时获取res对象,默认为false
    })
    const success = result && result.data && result.data.errcode === 0
    console.log(success ? '发送成功' : `发送失败:${result.data.errcode} --- ${result.data.errmsg}`)
  },
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
上次更新: 2023-06-21 10:49:53
Egg接口返回字段名下划线转驼峰
Redis基础知识

← Egg接口返回字段名下划线转驼峰 Redis基础知识→

最近更新
01
【uniapp】字节小程序BUG - “navigateToMiniProgram/getUserProfile:fail must be invoked by user tap gesture”
06-21
02
七牛云上传自有证书
04-27
03
使用腾讯云申请免费SSL证书
04-27
更多文章>
Theme by Vdoing | Copyright © 2020-2024 | 豫ICP备2020030395号 | 靳立祥 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式