sdk_generate/internal/msg/dingBot.go

47 lines
1.1 KiB
Go

package msg
import (
"bytes"
"context"
"encoding/json"
"io"
"log"
"net/http"
"time"
)
var MesSendUrl = "https://oapi.dingtalk.com/robot/send?access_token=d8367c13499dfb164b1e02a4c024024f6857a892e7406265be08d5b5e06fc590"
func SendDingTalkAlert(ctx context.Context, sdkName, url string) {
client := &http.Client{
Timeout: 10 * time.Second,
}
// ✅ 正确的 link 消息格式
message := map[string]interface{}{
"msgtype": "link",
"link": map[string]interface{}{
"title": "[ai_sdk]🎉 " + sdkName + " 代码生成完成,点此进入仓库",
"text": url + ".git",
"messageUrl": url,
"picUrl": "", // 可选:图片 URL
},
}
jsonData, err := json.Marshal(message)
if err != nil {
log.Printf("JSON序列化失败: %v", err)
return
}
resp, err := client.Post(MesSendUrl, "application/json", bytes.NewBuffer(jsonData))
if err != nil {
log.Printf("发送钉钉告警失败: %v", err)
return
}
defer resp.Body.Close()
data, _ := io.ReadAll(resp.Body)
log.Printf("钉钉告警发送结果,状态码: %s,内容:%s", resp.Status, data)
return
}