消息推送平台多用于在特定的场合提醒使用者,例如:博客收到评论、服务器告警、油价上涨、每日签到结果推送、家中饲养的鸽子外出、飞回,等等……自从方糖气球推出 Server 酱以来,消息推送平台逐渐多样化,他们遵循的 API 格式却很混乱。
Twikoo 评论系统对不同的消息推送平台做了大量的适配工作,云函数越来越大。
为了降低云函数复杂度,遂诞生了本项目,本项目旨在整合各大消息推送平台服务,获得统一的调用体验。
同时本项目由Tianli0提供公益QQ机器人推送服务,请勿用于非法用途!(机器人QQ将不定期更换,请关注文档)
注:如果您是在 Twikoo 评论系统中使用,则无需搭建,直接在 Twikoo 管理面板中配置平台名称和 token 即可。
如果您是在 GitHub Actions 中使用,可以使用 funnyzak/pushoo-action,该作者还提供了基于 pushoo 的命令行工具:funnyzak/pushoo-cli。
安装
npm install pushoo
现在,不论您使用什么推送平台,都无需关心他们的调用方式,只需要学习 pushoo 的调用方式即可开始发送您的第一条推送!
const pushoo = require('pushoo').default;
const result = await pushoo('平台名称', {
token: '平台用户身份标识',
title: '消息标题',
content: 'Markdown 格式的推送内容'
});
console.log(result);
是的,调用 pushoo 最简单只需要传递 4 个参数!
参数 | 必填 | 默认 | 说明 |
---|---|---|---|
平台名称 | ✅ | 无 | 字符串,平台名称的缩写,支持:qmsg 、serverchan 、pushplus 、pushplushxtrip 、dingtalk 、wecom 、bark 、gocqhttp 、atri 、pushdeer 、igot 、telegram 、feishu 、ifttt 、wecombot 、discord , wxpusher |
token | ✅ | 无 | 平台用户身份标识,通常情况下是一串数字和字母组合,详情和示例见下方详细说明 |
title | 内容第一行 | 可选,消息标题,如果推送平台不支持消息标题,则会拼接在正文首行 | |
content | ✅ | 无 | Markdown 格式的推送内容,如果推送平台不支持 Markdown,pushoo 会自动转换成支持的格式 |
options | ❌ | 无 | 用于推送时的一些额外配置。类型NoticeOptions |
interface NoticeOptions {
/**
* bark通知方式的参数配置
*/
bark?: {
/**
* url 用于点击通知后跳转的地址
*/
url?: string;
};
/**
* IFTTT通知方式的参数配置
*/
ifttt?: {
value1?: string;
value2?: string;
value3?: string;
};
/**
* Discord通知方式的参数配置
*/
discord?: {
userName?: string;
avatarUrl?: string;
};
/**
* WxPusher通知方式的参数配置
*/
wxpusher?: {
uids?: string[];
url?: string;
verifyPay?: boolean;
};
dingtalk?: {
/**
* 消息类型,目前支持 text、markdown。不设置,默认为 text。
*/
msgtype?: string;
};
}
qmsg
Qmsg 酱是 Zendee 提供的第三方 QQ 消息推送服务,免费,消息以 QQ 消息的形式推送,支持私聊推送和群推送。请注意,为避免 Qmsg 酱被 Tencent 冻结,pushoo 会自动删除消息中的网址和 IP 地址。
示例 token:d3e96b6c50adf28cc6d1bb*****a4613
serverchan
Server 酱是方糖提供的第三方多渠道推送服务,以服务号推送起家,稳定运行多年,免费收费并存,特色功能较多。
示例 token:SCT1364TKdsiGjGvyAZNYD*****VAK0k
pushplus
Push Plus 是苏州破壳网络科技有限公司提供的第三方微信服务号推送服务,免费版存在不影响使用的广告,会员版特权如下:https://www.pushplus.plus/vip.html。
示例 token:2832134a66df4da69ef941*****72317
pushplushxtrip
Push Plus Hxtrip 是中道(苏州)旅游网络科技有限公司提供的第三方微信服务号推送服务,免费无广告
示例 token:2a00acb27e414ea4bf9d19*****08986
dingtalk
钉钉是阿里推出的办公即时消息软件,官方提供了机器人 API,可实现消息推送,免费。推送的消息必须包含配置的关键字,否则推送不成功。只能在群聊中创建机器人,可选择 2 名好友组建群聊,然后移除 2 名好友(好友会收到提醒,请谨慎操作),再添加机器人。
示例 token:https://oapi.dingtalk.com/robot/send?access_token=06ff1823a060af772677680d9522b547bc2685251d47bed17ddada*****41d97
(完整的 Webhook)或者 06ff1823a060af772677680d9522b547bc2685251d47bed17ddada*****41d97
(只保留 access token)
wecom
企业微信应用消息推送,免费,限制较少。
agentid
),应用Secret( secret
),复制企业ID#应用Secret#应用ID
拼到一起,中间用 “#
” 号分隔,填入 pushoo 的 token 中示例 token:ww97a01a*****1e5f1#xHapDXmgZtlBgRQQXMb4kfh3y75Ynoubl*****l9ytE#1000005
PS:如果出现接口请求正常,企业微信接受消息正常,个人微信无法收到消息的情况,请确认如下配置:
bark
Bark 是 iOS 通知中心推送工具,可以推送消息到苹果手机上,免费。
示例 token:https://api.day.app/q2S4vQqpNyaS*****9neeJ/
(完整的 URL)或者 q2S4vQqpNyaS*****9neeJ
(只保留 token)
gocqhttp
go-cqhttp 是开源 QQ 机器人程序,免费,需自行搭建,插件十分丰富,但 “野生” 机器人并没有得到 Tencent 官方的支持,有账号被冻结的风险。
default-middlewares
下面的 access-token
,启动 go-cqhttp示例 token:http://你的IP或域名:端口号/send_private_msg?user_id=QQ号&token=你配置的token
(QQ号)或 http://你的IP或域名:端口号/send_group_msg?group_id=群号&token=你配置的token
(QQ群)
atri
go-cqhttp 是开源 QQ 机器人程序,由Tianli提供的pushoo推送服务。
使用前请加机器人好友(QQ:2102916311)
示例 token:1627236613
(QQ号)
pushdeer
PushDeer 是方糖一个开源的无 APP 推送解决方案,支持 iOS 14+ 轻应用、MacOS 11+ 客户端、Android 快应用,免费。
示例 token:PDU431TfFHZICvR6lJrFBswSRN1cJ*****zzFvR
igot
iGot 是一款聚合 APP、邮箱、微信等多种推送方式的第三方推送平台,免费,存在影响体验的广告。
示例 token:621f3b1dd2eba1*****101d9
telegram
Telegram 是自由的聊天工具,支持机器人 API,免费,中国大陆服务器无法使用这种推送方式。
api_token
chat_id
。接受消息的对象可以是用户,频道,或群组api_token#chat_id
拼到一起,中间用 “#
” 号分隔,填入 pushoo 的 token 中示例 token:5262***170:AAEzkaMjOayU13fFzcg9PI7_7*****p1iAs#958***732
feishu
飞书是字节跳动旗下的办公即时消息软件,官方提供了机器人 API,可实现消息推送,免费。推送的消息必须包含配置的关键字,否则推送不成功。只能在群聊中创建机器人。
示例 token:https://open.feishu.cn/open-apis/bot/v2/hook/393df85f-7b2c-4ff6-bd4f-*******3ed54
(完整的 Webhook)或者 393df85f-7b2c-4ff6-bd4f-*******3ed54
(只保留 access token)
ifttt
IFTTT Webhooks推送,免费。
Document
获取你的 Key, 点击 Create
开始创建一个Applet;push
;#
” 号分隔,填入 pushoo 的 token 中。示例 token:d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#push
PS: title 和 content 会分别对应 Value1 和 Value2,如果要设置 Value3 请在 options 设置
wecombot
企业微信群机器人推送,免费。
key
值,填入 pushoo 的 token 中.示例 token: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xx
Webhook中提取Token为 xxxxxxxx-xxxx-xx
;
discord
Discord Webhooks推送,免费。
webhook
;token
中。options
中设置。webhook
url 中的 id
和 token
来设置,格式为 id#token
。 如:https://discord.com/api/webhooks/123456789012345678/abcdefghijklmnopqrstuvwxyz
,则 token 设置为 123456789012345678#abcdefghijklmnopqrstuvwxyz
。示例 token:
https://discord.com/api/webhooks/123456789012345678/abcdefghijklmnopqrstuvwxyz
123456789012345678#abcdefghijklmnopqrstuvwxyz
wxpusher
WxPusher 是一款微信推送平台,免费。
appToken
;1234
;options
中设置 uids
; 如果要设置消息跳转链接,可以在 options
中设置 url
;如果需要设置验证支付,可以在 options
中设置 verifyPay
;appToken
和 topicId
拼接到一起,中间用 “#
” 号分隔,填入 pushoo 的 token 中(如果有多个主题ID,可用半角逗号分隔)。示例 token:
AT_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#1234
AT_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#1234,5678