webhook

package
v0.0.165 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2025 License: MIT Imports: 14 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{}

DefaultSender sends JSON webhook with optional HMAC-SHA256 signature.

func (*DefaultSender) Name

func (d *DefaultSender) Name() string

func (*DefaultSender) Send

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

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
	Method        string
	Headers       map[string]string
	Template      string
	SignSecret    string
	SignAlgo      string // e.g. "hmac-sha256", "feishu", "dingtalk"
	SignHeaderKey string // e.g. "X-Signature" or unused
}

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(群机器人)

func (*Receiver) Validate

func (r *Receiver) Validate() error

Validate 校验 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