经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Node.js » 查看文章
nodejs通过钉钉群机器人推送消息
来源:cnblogs  作者:WeihanLi  时间:2019/5/5 8:58:24  对本文有异议

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

Intro

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

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

实现

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

  1. import * as request from "request";
  2. import * as log4js from "log4js";
  3. const logger = log4js.getLogger("DingdingBot");
  4. const ApplicationTypeHeader:string = "application/json;charset=utf-8";
  5. // DingdingBot
  6. // https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq
  7. export class DingdingBot{
  8. private readonly _webhookUrl:string;
  9. constructor(webhookUrl:string){
  10. this._webhookUrl = webhookUrl;
  11. }
  12. public pushMsg (msg: string, atMobiles?: Array<string>): boolean{
  13. try {
  14. let options: request.CoreOptions = {
  15. headers: {
  16. "Content-Type": ApplicationTypeHeader
  17. },
  18. json: {
  19. "msgtype": "text",
  20. "text": {
  21. "content": msg
  22. },
  23. "at": {
  24. "atMobiles": atMobiles == null ? [] : atMobiles,
  25. "isAtAll": false
  26. }
  27. }
  28. };
  29. request.post(this._webhookUrl, options, function(error, response, body){
  30. logger.debug(`push msg ${msg}, response: ${JSON.stringify(body)}`);
  31. });
  32. }
  33. catch(err) {
  34. console.error(err);
  35. return false;
  36. }
  37. }
  38. }

使用方式:

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

原文链接:http://www.cnblogs.com/weihanli/p/dingdingBot-via-nodejs.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号