ดันครบในหนึ่งเดียว! รองรับ Server Sauce (และ Server Sauce³), อีเมลแบบกำหนดเอง, หุ่นยนต์ DingTalk, หุ่นยนต์ WeChat ระดับองค์กร, แอปพลิเคชัน WeChat ระดับองค์กร, pushplus, iGot, Qmsg, Xizhi, PushDeer, Discord, OneBot, Telegram และวิธีการพุชอื่น ๆ
Push All In One! รองรับวิธีการพุชหลายวิธีรวมถึง Server Chan (และ Server Chan³), อีเมลที่กำหนดเอง, หุ่นยนต์ DingTalk, หุ่นยนต์ WeChat Work, แอปพลิเคชัน WeChat Work, pushplus, iGot, Qmsg, XiZhi, PushDeer, Discord, OneBot, Telegram และอีกมากมาย .
คำเตือนที่อบอุ่น: ด้วยเหตุผลด้านความปลอดภัย โปรดใช้วิธีพุช ทั้งหมด บน ฝั่งเซิร์ฟเวอร์ ! กรุณาอย่าใช้มันบน ไคลเอนต์ (หน้าเว็บ) !
คำเตือนที่เป็นมิตร: ด้วยเหตุผลด้านความปลอดภัย ควรใช้วิธีการพุช ทั้งหมด บน ฝั่ง เซิร์ฟเวอร์ !
บริการพุชฟังก์ชั่นคลาวด์ที่พัฒนาขึ้นจาก push-all-in-one และ hono - push-all-in-cloud รองรับ nodejs/docker/vercel และวิธีการปรับใช้อื่นๆ และสามารถปรับใช้กับ vercel ได้ในคลิกเดียว
การแจ้งเตือนการอัปเดตที่สำคัญ: เวอร์ชัน push-all-in-one
v4 เข้ากันไม่ได้กับ v3 และเวอร์ชันต่ำกว่า โปรดตรวจสอบ CHANGELOG สำหรับการเปลี่ยนแปลง
การเปลี่ยนแปลงที่สำคัญ : เวอร์ชัน push-all-in-one
v4 เข้ากันไม่ได้กับ v3 และเวอร์ชันที่ต่ำกว่า โปรดดูที่ CHANGELOG สำหรับการเปลี่ยนแปลง
ขอแนะนำให้แก้ไขตามคำแนะนำประเภทของ TypeScript
แนะนำให้แก้ไขตามข้อความแจ้งประเภทของ TypeScript
https://github.com/CaoMeiYouRen/push-all-in-one#readme
https://github.com/CaoMeiYouRen/push-all-in-one/tree/master/examples
npm i push-all-in-one -S
วิธีการพุชทั้งหมดใช้ send(title: string, desp?: string, options?: any):
title
คือ消息标题
desp
คือ消息描述
และ options
คือ额外推送选项
สำหรับวิธีการพุช สำหรับรายละเอียด โปรดดูหมายเหตุของแต่ละช่องทางการพุช
ไม่รู้จะตั้งค่ายังไง? โปรดไปที่ตัวสร้างการกำหนดค่าแบบพุชออลอินคลาวด์เพื่อสร้างการกำหนดค่าทั่วไป
push-all-in-one
และpush-all-in-cloud
ทางออนไลน์
ตัวอย่างวิธีการโทร:
import { ServerChanTurbo , ServerChanV3 , CustomEmail , Dingtalk , WechatRobot , WechatApp , PushPlus , IGot , Qmsg , XiZhi , PushDeer , Discord , OneBot , Telegram , runPushAllInOne } from 'push-all-in-one'
// 通过 runPushAllInOne 统一调用
runPushAllInOne ( '测试推送' , '测试推送' , {
type : 'ServerChanTurbo' ,
config : {
SERVER_CHAN_TURBO_SENDKEY : '' ,
} ,
option : {
} ,
} )
// Server酱·Turbo。官方文档:https://sct.ftqq.com/r/13172
const SCTKEY = 'SCTxxxxxxxxxxxxxxxxxxx'
const serverChanTurbo = new ServerChanTurbo ( {
SERVER_CHAN_TURBO_SENDKEY : SCTKEY ,
} )
serverChanTurbo . send ( '你好' , '你好,我很可爱 - Server酱·Turbo' , { } )
// 【推荐】Server酱³
// Server酱3。官方文档:https://sc3.ft07.com/doc
const SERVER_CHAN_V3_SENDKEY = 'sctpXXXXXXXXXXXXXXXXXXXXXXXX'
const serverChanV3 = new ServerChanV3 ( {
SERVER_CHAN_V3_SENDKEY ,
} )
serverChanV3 . send ( '你好' , '你好,我很可爱 - Server酱³' , { } )
// 【推荐】自定义邮件,基于 nodemailer 实现,官方文档: https://github.com/nodemailer/nodemailer
const customEmail = new CustomEmail ( {
EMAIL_TYPE : 'text' ,
EMAIL_TO_ADDRESS : '[email protected]' ,
EMAIL_AUTH_USER : '[email protected]' ,
EMAIL_AUTH_PASS : '123456' ,
EMAIL_HOST : 'smtp.qq.com' ,
EMAIL_PORT : 465 ,
} )
customEmail . send ( '你好' , '你好,我很可爱 - 自定义邮件' , { } )
// 【推荐】钉钉机器人。官方文档:https://developers.dingtalk.com/document/app/custom-robot-access
const DINGTALK_ACCESS_TOKEN = 'xxxxxxxxxxxxxxxxxx'
const DINGTALK_SECRET = 'SECxxxxxxxxxxxxxxxx'
const dingtalk = new Dingtalk ( {
DINGTALK_ACCESS_TOKEN ,
DINGTALK_SECRET ,
} )
dingtalk . send ( '你好' , '你好,我很可爱 - 钉钉机器人' , { msgtype : 'markdown' } )
// 企业微信群机器人。官方文档:https://developer.work.weixin.qq.com/document/path/91770
// 企业微信群机器人的使用需要两人以上加入企业,如果个人使用微信推送建议使用 企业微信应用+微信插件 推送。虽然需要配置的内容更多了,但是无需下载企业微信,网页端即可完成操作。
const WECHAT_ROBOT_KEY = 'xxxxxxxxxxxxxxxxxxxxxxx'
const wechatRobot = new WechatRobot ( {
WECHAT_ROBOT_KEY ,
} )
wechatRobot . send ( '你好,我很可爱- 企业微信群机器人' , '' , { msgtype : 'text' } )
// 【推荐】企业微信应用推送,官方文档:https://developer.work.weixin.qq.com/document/path/90664
// 微信插件 https://work.weixin.qq.com/wework_admin/frame#profile/wxPlugin
// 参数的介绍请参考:https://developer.work.weixin.qq.com/document/path/90665
// 支持 text 和 markdown 格式,但 markdown 格式仅可在企业微信中查看
const wechatApp = new WechatApp ( {
WECHAT_APP_CORPID : 'wwxxxxxxxxxxxxxxxxxxxx' ,
WECHAT_APP_AGENTID : 10001 , // 请更换为自己的 AGENTID
WECHAT_APP_SECRET : 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ,
} )
wechatApp . send ( '你好,我很可爱 - 企业微信应用推送' , '' , {
msgtype : 'text' ,
touser : '@all' ,
} )
// pushplus 推送,官方文档:https://www.pushplus.plus/doc/
const PUSH_PLUS_TOKEN = 'xxxxxxxxxxxxxxxxxxxxx'
const pushplus = new PushPlus ( { PUSH_PLUS_TOKEN } )
pushplus . send ( '你好' , '你好,我很可爱 - PushPlus' , {
template : 'html' ,
channel : 'wechat' ,
} )
// iGot 推送,官方文档:http://hellyw.com/#/
const I_GOT_KEY = 'xxxxxxxxxx'
const iGot = new IGot ( { I_GOT_KEY } )
iGot . send ( '你好' , '你好,我很可爱 - iGot' , {
url : 'https://github.com/CaoMeiYouRen/push-all-in-one' ,
topic : 'push-all-in-one' ,
} )
// Qmsg 酱 推送,官方文档:https://qmsg.zendee.cn
const QMSG_KEY = 'xxxxxxxxxxxx'
const qmsg = new Qmsg ( { QMSG_KEY } )
qmsg . send ( '你好,我很可爱 - Qmsg' , '' , {
type : 'send' ,
qq : '123456,654321' ,
} ) // msg:要推送的消息内容;qq:指定要接收消息的QQ号或者QQ群,多个以英文逗号分割,例如:12345,12346
// 息知 推送,官方文档:https://xz.qqoq.net/#/index
const XI_ZHI_KEY = 'xxxxxxxxxxxxx'
const xiZhi = new XiZhi ( { XI_ZHI_KEY } )
xiZhi . send ( '你好' , '你好,我很可爱 - XiZhi' )
// PushDeer 推送,官方文档:https://github.com/easychen/pushdeer
const PUSH_DEER_PUSH_KEY = 'xxxxxxxxxx'
const pushDeer = new PushDeer ( { PUSH_DEER_PUSH_KEY } )
pushDeer . send ( '你好' , '你好,我很可爱 - PushDeer' , {
type : 'markdown' ,
} )
// 【推荐】Discord Webhook 推送,官方文档:https://support.discord.com/hc/zh-tw/articles/228383668-%E4%BD%BF%E7%94%A8%E7%B6%B2%E7%B5%A1%E9%89%A4%E6%89%8B-Webhooks-
// [Recommended] Discord Webhook push. Official documentation: https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks
const DISCORD_WEBHOOK = 'https://discord.com/api/webhooks/xxxxxxxxxxxxxxxxxxxxxxxxxxx'
const DISCORD_USERNAME = 'My Bot'
const PROXY_URL = 'http://127.0.0.1:8101'
const discord = new Discord ( { DISCORD_WEBHOOK , PROXY_URL } )
// Discord 也支持以下方式添加代理地址
// Discord also supports adding proxy addresses in the following ways
// discord.proxyUrl = 'http://127.0.0.1:8101'
discord . send ( '你好,我很可爱 - Discord' , '' , {
username : DISCORD_USERNAME ,
} )
// 【推荐】Telegram Bot 推送。官方文档:https://core.telegram.org/bots/api#making-requests
// [Recommended] Telegram Bot push. Official documentation: https://core.telegram.org/bots/api#making-requests
const telegram = new Telegram ( {
TELEGRAM_BOT_TOKEN : '111111:xxxxxxxxxxxxxx' ,
TELEGRAM_CHAT_ID : 100000 ,
// PROXY_URL: 'http://127.0.0.1:8101',
} )
// Telegram 也支持以下方式添加代理地址
// Telegram also supports adding proxy addresses in the following ways
// telegram.proxyUrl = 'http://127.0.0.1:8101'
telegram . send ( '你好,我很可爱 - Telegram' , '' , {
disable_notification : true ,
} )
// OneBot 推送。官方文档:https://github.com/botuniverse/onebot-11
// 本项目实现的版本为 OneBot 11
// 在 mirai 环境下实现的插件版本可参考:https://github.com/yyuueexxiinngg/onebot-kotlin
const ONE_BOT_BASE_URL = 'http://127.0.0.1:5700'
const ONE_BOT_ACCESS_TOKEN = 'xxxxxxxxxxx'
const oneBot = new OneBot ( { ONE_BOT_BASE_URL , ONE_BOT_ACCESS_TOKEN } )
oneBot . send ( '你好,我很可爱 - OneBot 11' , '' , {
message_type : 'private' ,
user_id : 123456789 ,
} )
สำหรับตัวอย่างเพิ่มเติม โปรดดูตัวอย่าง
การสนับสนุนตัวแทน
ตัวแปรสภาพแวดล้อม | ผล | ตัวอย่าง |
---|---|---|
NO_PROXY | ตั้งค่าว่าจะปิดใช้งานพรอกซีหรือไม่ | จริง |
HTTP_PROXY | ตั้งค่าพร็อกซี http/https | http://127.0.0.1:8101 |
HTTPS_PROXY | ตั้งค่าพร็อกซี http/https | http://127.0.0.1:8101 |
SOCKS_พร็อกซี | ตั้งค่าพร็อกซี http/https ผ่านโปรโตคอล Socks/socks5 | ถุงเท้า://127.0.0.1:8100 |
โปรเจ็กต์นี้รองรับคำขอพร็อกซีผ่านตัวแปรสภาพแวดล้อม
// 在 nodejs 项目中可通过直接设置环境变量来设置代理
process . env . HTTP_PROXY = 'http://127.0.0.1:8101' // 当请求是 http/https 的时候走 HTTP_PROXY
process . env . HTTPS_PROXY = 'http://127.0.0.1:8101' // 当请求是 http/https 的时候走 HTTPS_PROXY,HTTPS_PROXY 优先
process . env . SOCKS_PROXY = 'socks://127.0.0.1:8100' // 当 HTTP_PROXY 设置时走 SOCKS_PROXY
// process.env.NO_PROXY = true // 设置 NO_PROXY 可禁用代理
ตัวแปรสภาพแวดล้อมสามารถตั้งค่าได้ด้วยตนเองบนบรรทัดคำสั่ง
set HTTP_PROXY= ' http://127.0.0.1:8101 ' # Windows
export HTTP_PROXY= ' http://127.0.0.1:8101 ' # Linux
cross-env HTTP_PROXY= ' http://127.0.0.1:8101 ' # 通过 cross-env 这个包来跨平台
โปรเจ็กต์นี้ได้รับการพัฒนาโดยใช้ TypeScript และจัดทำแพ็คเกจโดยใช้ tsup ซึ่งสามารถใช้คำแนะนำประเภทได้อย่างสมบูรณ์แบบและการเพิ่มประสิทธิภาพการสั่นไหวแบบต้นไม้จะถูกลบออกในระหว่างขั้นตอนการคอมไพล์
npm run dev
โปรเจ็กต์นี้ใช้แพ็คเกจ debug
เพื่อดีบัก หากคุณต้องการเปิดใช้งานการดีบัก ให้ตั้งค่าตัวแปรสภาพแวดล้อมเป็น DEBUG=push:*
เป็นต้น
cross-env DEBUG=push: * NODE_ENV=development ts-node-dev test/index.test.ts # 因为一些原因该文件未上传,可自行编写测试用例
npm run build
npm run lint
npm run commit
เฉาเหม่ยยูเรน
รู้สึกอิสระที่จะมีส่วนร่วม ถามคำถาม หรือแนะนำคุณสมบัติใหม่!
หากคุณมีคำถามใด ๆ โปรดตรวจสอบหน้าปัญหา
หากต้องการสนับสนุนหรือเสนอคุณสมบัติใหม่ โปรดดูคำแนะนำในการสนับสนุน
ยินดีต้อนรับสู่การมีส่วนร่วม ถามคำถาม หรือเสนอคุณสมบัติใหม่ๆ!
หากคุณมีคำถามใด ๆ โปรดตรวจสอบหน้าปัญหา
สำหรับการสนับสนุนหรือข้อเสนอคุณลักษณะใหม่ โปรดดูคู่มือการมีส่วนร่วม
หากคุณพบว่าโครงการนี้มีประโยชน์ โปรดให้ ️ ขอบคุณมาก
หากคุณพบว่าโครงการนี้มีประโยชน์ โปรดให้ ️ ขอบคุณมาก
ลิขสิทธิ์ © 2022 CaoMeiYouRen.
โครงการนี้ได้รับอนุญาตจาก MIT
README นี้สร้างด้วย ❤️ โดย cmyr-template-cli