nodejs通过钉钉群机器人推送消息

发布时间:2020-11-16 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了nodejs通过钉钉群机器人推送消息编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

nodejs 通过钉钉群机器人推送消息

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通过钉钉群机器人推送消息所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478