在本文中,我们将介绍如何通过钉钉机器人发送消息。钉钉提供了一个简单的 API,允许你通过 Webhook URL 向指定的群组发送消息。通过这个方法,你可以将系统通知、报警信息等发送到钉钉群。
第一步:创建钉钉机器人
-
打开钉钉客户端,进入目标群组。
-
点击右上角的设置按钮,选择“群机器人”。
-
-
添加一个自定义机器人,记录生成的 Webhook URL。
-
第二步:编写 Go 程序发送消息
下面是一个简单的 Go 语言示例,展示如何向钉钉发送消息并@指定人员:
package main import ( "bytes" "encoding/json" "fmt" "log" "net/http" ) // 钉钉机器人 Webhook URL,需替换为你自己的钉钉机器人 URL const dingTalkWebhook = "https://oapi.dingtalk.com/robot/send?access_token=your_access_token" // sendMessage 函数用于通过钉钉机器人发送消息 func sendMessage(content string, atMobiles []string) error { // 构造钉钉消息格式 message := map[string]interface{}{ "msgtype": "text", // 消息类型为文本 "text": map[string]string{ "content": content, // 消息内容 }, "at": map[string]interface{}{ "atMobiles": atMobiles, // 需要@的手机号列表 "isAtAll": false, // 是否@所有人 }, } // 将消息转换为 JSON 格式 bytesRepresentation, err := json.Marshal(message) if err != nil { log.Println("JSON 序列化失败:", err) return err } // 发送 HTTP POST 请求到钉钉机器人 resp, err := http.Post(dingTalkWebhook, "application/json", bytes.NewBuffer(bytesRepresentation)) if err != nil { log.Println("发送消息失败:", err) return err } defer resp.Body.Close() // 打印发送成功日志 log.Println("钉钉消息发送成功:", content) return nil } func main() { // 示例消息内容 messageContent := "测试消息:这是通过钉钉机器人发送的通知" // 示例需要@的手机号 atMobiles := []string{"13000000000"} //必须是注册钉钉的手机号@才会有效果 // 调用发送消息函数 err := sendMessage(messageContent, atMobiles) if err != nil { log.Fatalf("发送钉钉消息失败: %v", err) } else { fmt.Println("消息发送成功!") } }
最后附上效果图,根据自己的业务逻辑可以编辑这些