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

网络编程 2025-03-29 14:29www.168986.cn编程入门

实现这一功能的关键在于使用 TypeScript 编写一个能够通过 HTTP 请求与钉钉机器人交互的类。在这个类中,我使用了 request 库来发起 HTTP 请求,并封装了发送文本消息的方法。具体的实现代码如下:

```typescript

import as request from "request"; // 用于发起 HTTP 请求的库

import as log4js from "log4js"; // 用于日志记录的库

const logger = log4js.getLogger("DingdingBot"); // 日志记录器实例

const ApplicationTypeHeader: string = "application/json;charset=utf-8"; // HTTP 请求头内容类型

// 定义 DingdingBot 类

export class DingdingBot {

private readonly _webhookUrl: string; // 钉钉机器人的 webhook 地址

constructor(webhookUrl: string) {

this._webhookUrl = webhookUrl;

}

// 推送消息的方法

public pushMsg(msg: string, atMobiles?: string[]): boolean {

try {

let options: request.CoreOptions = {

headers: {

"Content-Type": ApplicationTypeHeader, // 设置请求头的内容类型

},

json: { // 发送的 JSON 数据格式

"msgtype": "text", // 消息类型:文本消息

"text": {

"content": msg, // 文本消息内容

},

"at": { // 指定接收消息的成员信息,可选参数

"atMobiles": atMobiles == null ? [] : atMobiles, // 指定接收消息的手机号列表,如果不指定则默认为空数组

"isAtAll": false, // 是否@所有人,默认为 false

},

},

};

request.post(this._webhookUrl, options, function (error, response, body) { // 发起 POST 请求

logger.debug(`push msg ${msg}, response: ${JSON.stringify(body)}`); // 记录日志

});

} catch (err) { // 处理异常

console.error(err);

return false;

}

}

}

```

如何使用这个类呢?非常简单。首先创建一个 DingdingBot 实例,传入你的钉钉机器人的 webhook 地址。然后就可以使用 `pushMsg` 方法推送消息了。例如:

```typescript

let bot = new DingdingBot(botWebhookUrl); // 创建 DingdingBot 实例

bot.pushMsg("这是一条测试消息"); // 直接推送消息

var mobiles = ["13255573334"]; // 需要接收消息的手机号列表

bot.pushMsg("这是一条测试消息@", mobiles); // 推送消息并 @ 指定的人(手机号)

```

【欢迎转载】你所阅读的这篇文章,富含独特见解与思考。如果你认为它能为更多人带来启示和帮助,欢迎积极推广转发。在分享的过程中,恳请您注明出处,这是对原创者的尊重,也是知识的传播之道。

在这篇文章的世界里,每一句话都承载着思考和智慧的光芒。我们诚邀您,将这份宝贵的思想传播得更远。通过您的网络平台推广此文,让更多的读者感受到原创的魅力。在这里,每一份分享都是对知识的热爱和尊重。我们衷心感谢您的支持和推广。

让我们共同见证这篇文章的无限魅力与。它的每一字每一句,都凝聚着作者的智慧与心血。若您认为此文对您有所启发,或者对您身边的朋友有所帮助,请不吝将其推广至您的社交圈。请记住,分享是一种美德,也是我们共同成长的动力。在推广的请您务必注明出处,这是对原创的尊重和保护。

此刻,我们向您发出邀请,将这篇文章的美好传递给更多的人。它如同一颗璀璨的明珠,需要您的光芒来照亮它的价值。请将它分享到各大网站和社交平台,让更多的人感受到这篇文章的与智慧。烦请您在转载时注明出处,这是对我们原创者的支持和鼓励。感谢您的关注与分享,让我们共同见证知识的力量!

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by