webhook

package
v0.0.166 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 1, 2025 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenDingtalkSign added in v0.0.157

func GenDingtalkSign(secret string, timestamp int64) (string, error)

GenDingtalkSign generates signature for Dingtalk webhook

func GenSign

func GenSign(secret string, timestamp int64) (string, error)

func RegisterAllSenders

func RegisterAllSenders()

RegisterAllSenders 集中注册所有平台 Sender

func RegisterSender

func RegisterSender(platform string, sender Sender)

RegisterSender registers a new platform sender.

Types

type DefaultSender

type DefaultSender struct{}

func (*DefaultSender) Name

func (d *DefaultSender) Name() string

DefaultSender 以通用方式发送 Webhook 请求 功能: 1) 使用 Receiver.BodyTemplate 作为 htpl 模板渲染请求体 2) 使用 POST 方法发送到 Receiver.TargetURL 3) 不支持签名功能(签名由各平台专用 Sender 处理)

func (*DefaultSender) Send

func (d *DefaultSender) Send(msg string, receiver *Receiver) (*SendResult, error)

Send 发送消息到自定义 Webhook 参数: - msg: 原始消息字符串,作为模板上下文中的 summary 字段 - receiver: Webhook 接收端配置(包含模板、签名算法、HTTP 方法等) 返回:发送结果与错误

type DingtalkSender added in v0.0.157

type DingtalkSender struct{}

DingtalkSender implements webhook sending for Dingtalk.

func (*DingtalkSender) Name added in v0.0.157

func (d *DingtalkSender) Name() string

func (*DingtalkSender) Send added in v0.0.157

func (d *DingtalkSender) Send(msg string, receiver *Receiver) (*SendResult, error)

type FeishuSender

type FeishuSender struct{}

FeishuSender implements webhook sending for Feishu.

func (*FeishuSender) Name

func (f *FeishuSender) Name() string

func (*FeishuSender) Send

func (f *FeishuSender) Send(msg string, receiver *Receiver) (*SendResult, error)

type Receiver

type Receiver struct {
	Platform     string
	TargetURL    string
	BodyTemplate string
	SignSecret   string
}

Receiver represents a user-defined webhook endpoint.

func NewDingtalkReceiver added in v0.0.157

func NewDingtalkReceiver(targetURL, signSecret string) *Receiver

NewDingtalkReceiver 快捷创建钉钉 Receiver

func NewFeishuReceiver

func NewFeishuReceiver(targetURL, signSecret string) *Receiver

NewFeishuReceiver 快捷创建飞书 Receiver

func NewWechatReceiver added in v0.0.165

func NewWechatReceiver(targetURL string) *Receiver

NewWechatReceiver 快捷创建企业微信 Receiver(群机器人)

type SendResult

type SendResult struct {
	Status     string // success / failed
	StatusCode int
	RespBody   string
}

SendResult holds the result of a webhook send attempt.

func PushMsgToAllTargets

func PushMsgToAllTargets(msg string, receivers []*models.WebhookReceiver) []*SendResult

func PushMsgToSingleTarget

func PushMsgToSingleTarget(msg string, receiver *models.WebhookReceiver) *SendResult

type Sender

type Sender interface {
	Name() string
	Send(msg string, receiver *Receiver) (*SendResult, error)
}

Sender defines the webhook adapter interface.

func GetSender added in v0.0.157

func GetSender(platform string) (Sender, error)

GetSender returns the appropriate sender. 若找不到平台,返回 nil 并建议调用方处理异常

type WechatSender added in v0.0.165

type WechatSender struct{}

WechatSender 企业微信群机器人 Sender,实现 webhook 发送能力。 参考官方企业微信群机器人接口,默认以 markdown 格式发送消息。 注意:企业微信群机器人仅需在 URL 中携带 key,无需额外签名。

func (*WechatSender) Name added in v0.0.165

func (w *WechatSender) Name() string

Name 返回平台名称,用于注册与选择对应 Sender。

func (*WechatSender) Send added in v0.0.165

func (w *WechatSender) Send(msg string, receiver *Receiver) (*SendResult, error)

Send 发送消息到企业微信群机器人。 参数 msg 为最终要发送的文本内容;receiver 为统一的目标配置。 默认使用 markdown 消息体结构:

{
  "msgtype": "markdown",
  "markdown": {
    "content": "..."
  }
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL