Files
goodBaby/drivers/dingtalk/dingtalk.go
T

34 lines
981 B
Go
Raw Normal View History

2026-07-26 22:19:41 +08:00
// Package dingtalk 提供钉钉自定义机器人的提醒与规则执行能力
2026-04-05 10:36:22 +08:00
package dingtalk
2026-04-05 22:28:38 +08:00
import (
2026-07-26 22:19:41 +08:00
"fmt"
2026-04-05 10:36:22 +08:00
2026-04-05 22:28:38 +08:00
"github.com/CatchZeng/dingtalk/pkg/dingtalk"
"github.com/ssdomei232/goodBaby/model"
)
2026-07-26 22:19:41 +08:00
// SendDingTalkMsg 使用用户配置的钉钉机器人发送提醒
//
// 用户没有配置钉钉机器人时返回 ErrNoUserConfig
func SendDingTalkMsg(user *model.User, title string, msg string) error {
config := getDingTalkConfigFromUser(user)
if config == nil {
return ErrNoUserConfig
2026-04-05 22:28:38 +08:00
}
2026-07-26 22:19:41 +08:00
return send(config, title, msg)
}
// ErrNoUserConfig 表示用户没有配置钉钉提醒
var ErrNoUserConfig = fmt.Errorf("用户未配置钉钉机器人")
func send(config *DingTalkConfig, title, msg string) error {
client := dingtalk.NewClient(config.AccessToken, config.Secret)
message := dingtalk.NewMarkdownMessage().SetMarkdown(title, msg)
if _, _, err := client.Send(message); err != nil {
return fmt.Errorf("发送钉钉消息失败: %w", err)
}
return nil
2026-04-05 22:28:38 +08:00
}