Skip to content

Provider 分类 ​

Provider 类别 ​

类型说明示例
Bot API官方 Bot APITelegram / Discord
WebhookWebhook 接口飞书 / 企业微信 / 钉钉 / Slack
SMTP邮件协议Email
SMS短信服务阿里云 / 腾讯云 / 网易云
移动推送APNs / FCM 等FCM / APNs / 极光 / 个推
Third-party Push第三方推送Server酱
Worker ProxyWorker 代理type: worker 的转发渠道

Builtin Providers ​

19 个 Factory 全部注册在 providers/builtin/registry/registry.go:

Provider类型描述
Log内置日志输出,用于测试
TelegramBot APITelegram Bot API
DiscordWebhook/BotDiscord Webhook 或 Bot API
FeishuWebhook飞书机器人
WeComWebhook企业微信机器人
DingTalkWebhook钉钉机器人
SlackWebhookSlack Webhook
EmailSMTP邮件发送
Webhook通用通用 HTTP Webhook
AliyunSMSSMS阿里云短信
TencentSMSSMS腾讯云短信
NetEaseSMSSMS网易云短信
WeChatThird-party微信个人推送(Server酱)
WeChatMPThird-party微信公众号(模板消息/客服消息)
FCM移动推送Firebase Cloud Messaging
APNs移动推送Apple Push Notification service
JPush移动推送极光推送
Getui移动推送个推
Worker代理转发给远程 Worker 进程执行

Worker Provider ​

Worker Provider 是一个代理类型(type: worker),本身不实现任何渠道:把任务按 target(等价 name)转发给匹配的远程 Worker,发送动作在 Worker 进程里完成。业务渠道(含微信公众号)跑在哪个 Runtime 由部署决定:内置渠道默认走 Builtin Runtime;同一个渠道也可以交由远程 Worker 承接,配置里换 type: worker 即可。

配置格式 ​

Builtin Provider ​

yaml
providers:
  telegram:
    type: telegram
    enabled: true
    config:
      token: "$TELEGRAM_BOT_TOKEN"
      chat_id: "$TELEGRAM_CHAT_ID"

Worker Provider ​

yaml
providers:
  ops-push:
    type: worker
    enabled: true
    config:
      target: "wechat-worker-01"   # 也支持 name 键,二者等价

Provider 工厂 ​

每个 Provider 都有一个对应的工厂类:

go
type Factory interface {
    Create(config map[string]interface{}) (Provider, error)
    Name() string
    Type() string
}

工厂注册(providers/builtin/registry):

go
manager.RegisterFactory(&telegram.Factory{})
manager.RegisterFactory(&email.Factory{})
manager.RegisterFactory(&worker.Factory{})