nodejs通过钉钉群机器人推送消息的实现代码


Posted in NodeJs onMay 05, 2019

Intro

最近在用 nodejs 写爬虫,之前的 nodejs 爬虫代码用 js 写的,感觉可维护性太差,也没有智能提示,于是把js改用ts(typescript)重写一下,提升代码质量。

爬虫启动之后不定期会出现验证码反爬虫,需要输入验证码才能继续,于是想在需要输入验证码时推送一个消息给用户,让用户输入验证码以继续爬虫的整个流程。我们平时用钉钉办公,钉钉群有个机器人,很方便于是就实现了一个通过钉钉的群机器人实现消息推送。

实现

代码是 ts 实现的,用了 request 发起http请求,具体参数参考钉钉官方文档,只实现了文本消息的推送,其它消息类似,再进行一层封装,实现代码如下:

import * as request from "request";
import * as log4js from "log4js";
const logger = log4js.getLogger("DingdingBot");
const ApplicationTypeHeader:string = "application/json;charset=utf-8";
// DingdingBot
// https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq
export class DingdingBot{
  private readonly _webhookUrl:string;
  constructor(webhookUrl:string){
    this._webhookUrl = webhookUrl;
  }
  public pushMsg (msg: string, atMobiles?: Array<string>): boolean{
    try {
      let options: request.CoreOptions = {
        headers: {
         "Content-Type": ApplicationTypeHeader
        },
        json: {
          "msgtype": "text", 
          "text": {
            "content": msg
          }, 
          "at": {
            "atMobiles": atMobiles == null ? [] : atMobiles,
            "isAtAll": false
          }
        }
       };
      request.post(this._webhookUrl, options, function(error, response, body){
        logger.debug(`push msg ${msg}, response: ${JSON.stringify(body)}`);
      });
    }
    catch(err) {
      console.error(err);
      return false;
    }    
  }
}

使用方式:

// botWebhookUrl 为对应钉钉机器人的 webhook 地址
let bot = new DingdingBot(botWebhookUrl);;
// 直接推送消息
bot.pushMsg("测试消息");
// 推送消息并 @ 某些人
var mobiles = new Array<string>();
mobiles.push("13255573334");
bot.pushMsg("测试消息并@", mobiles);

总结

以上所述是小编给大家介绍的nodejs通过钉钉群机器人推送消息的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

NodeJs 相关文章推荐
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
详解Nodejs之npm&amp;package.json
Jun 15 NodeJs
Nodejs 复制文件/文件夹的方法
Aug 24 NodeJs
Nodejs+express+ejs简单使用实例代码
Sep 18 NodeJs
nodejs async异步常用函数总结(推荐)
Nov 17 NodeJs
修改Nodejs内置的npm默认配置路径方法
May 13 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
Nodejs中的require函数的具体使用方法
Apr 02 NodeJs
nodejs实现百度舆情接口应用示例
Feb 07 NodeJs
浅谈vue websocket nodeJS 进行实时通信踩到的坑
Sep 22 NodeJs
浅谈Node的内存泄露问题
May 06 NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 #NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 #NodeJs
nodejs检测因特网是否断开的解决方案
Apr 17 #NodeJs
Nodejs实现用户注册功能
Apr 14 #NodeJs
使用nodejs分离html文件里的js和css详解
Apr 12 #NodeJs
nodejs分离html文件里面的js和css的方法
Apr 09 #NodeJs
NodeJs操作MongoDB教程之分页功能以及常见问题
Apr 09 #NodeJs
You might like
PHP编码规范的深入探讨
2013/06/06 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
Ajax搜索结果页面下方的分页按钮的生成
2012/04/05 Javascript
JS delegate与live浅析
2013/12/21 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
VUE+Element实现增删改查的示例源码
2020/11/23 Vue.js
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
Python切片操作深入详解
2018/07/27 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Python中安装easy_install的方法
2018/11/18 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
英国大码女性时装零售商:Evans
2018/08/29 全球购物
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
高一军训的心得体会
2014/09/01 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书