nodejs通过钉钉群机器人推送消息的实现代码
Intro
最近在用nodejs写爬虫,之前的nodejs爬虫代码用js写的,感觉可维护性太差,也没有智能提示,于是把js改用ts(typescript)重写一下,提升代码质量。
爬虫启动之后不定期会出现验证码反爬虫,需要输入验证码才能继续,于是想在需要输入验证码时推送一个消息给用户,让用户输入验证码以继续爬虫的整个流程。我们平时用钉钉办公,钉钉群有个机器人,很方便于是就实现了一个通过钉钉的群机器人实现消息推送。
实现
代码是ts实现的,用了request发起http请求,具体参数参考钉钉官方文档,只实现了文本消息的推送,其它消息类似,再进行一层封装,实现代码如下:
import*asrequestfrom"request"; import*aslog4jsfrom"log4js"; constlogger=log4js.getLogger("DingdingBot"); constApplicationTypeHeader:string="application/json;charset=utf-8"; //DingdingBot //https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq exportclassDingdingBot{ privatereadonly_webhookUrl:string; constructor(webhookUrl:string){ this._webhookUrl=webhookUrl; } publicpushMsg(msg:string,atMobiles?:Array):boolean{ try{ letoptions: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(`pushmsg${msg},response:${JSON.stringify(body)}`); }); } catch(err){ console.error(err); returnfalse; } } }
使用方式:
//botWebhookUrl为对应钉钉机器人的webhook地址 letbot=newDingdingBot(botWebhookUrl);; //直接推送消息 bot.pushMsg("测试消息"); //推送消息并@某些人 varmobiles=newArray(); mobiles.push("13255573334"); bot.pushMsg("测试消息并@",mobiles);
总结
以上所述是小编给大家介绍的nodejs通过钉钉群机器人推送消息的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!