首页 > 开发工具 > 【在线工具】一封传话推送服务

【在线工具】一封传话推送服务

网站做到一定阶段,总会有几件事需要马上告诉用户:新文章上线、商品补货、订单发货、会员快到期。短信贵,邮件打开率低,站内信要用户回站才看得到;想推到微信、钉钉、飞书,又得逐家申请机器人、研究各自的签名和模板。今天介绍的一封传话(push-server)把这些差异收进一个通道码里:你只维护「什么时候推、推给谁、推什么」,投递、重试、多端适配交给它。下面说明它是什么、能用在哪些场景,以及如何用 push-sdk.js 在五分钟内接进自己的网站。

不用注册官网也能先体验:打开一封传话的分享页,用邮箱开通一条通道,新增、修改、测试推送都能在页面上完成,理解清楚之后再把接口接进项目。

在线体验:https://push.phprm.com/message/share.html

一、一封传话是什么

它是一个聚合推送服务:企业微信群机器人、钉钉群机器人、飞书群机器人、企业微信应用、Bark(iOS)、Telegram、Discord、自定义 Webhook、浏览器通知,以及 QQ / 163 / 126 / 搜狐 / 139 / 189 / 新浪 / 阿里云邮箱和官方邮件,都在同一套接口后面。用户选哪个工具接收,就配哪条通道;你只拿一串 32 位通道码 去推送。

对网站站长来说,最省事的一点是用户不需要在你的网站注册:他只要填写邮箱,收一次验证码,就能拿到属于自己的通道码。新用户会自动开通一条通道;已经注册过一封传话的用户,登录后直接复用他账号下已有的通道,不会重复开通。

二、这些场景值得推送

  • 内容更新:新文章、新视频、新版本发布,订阅用户第一时间收到标题和链接;

  • 订阅关注:用户订阅作者、栏目、标签或话题,只推他真正关心的内容;

  • 商品到货与价格变动:缺货登记、降价提醒、限时折扣开始,入库或变价时自动通知;

  • 公告与维护:停机维护、服务恢复、规则调整,一次推送覆盖所有订阅用户;

  • 订单与物流:已支付、已发货、派送中、已签收,关键节点送到用户手机上;

  • 互动提醒:有人回复帖子、评论被点赞、被 @,不必守在站内刷新;

  • 到期与续费:会员、证书、域名、试用到期,提前几天提醒;

  • 活动与开售:预约的直播、课程、限量商品开始,准时通知;

  • 安全提醒:异地登录、密码变更、绑定信息修改,第一时间告知账号主人;

  • 审批与工单:工单有回复、审批通过或被驳回,直接推给发起人;

  • 网盘内容更新:订阅的文件夹或分享链接有新文件、新版本时自动提醒。

三、为什么用统一 SDK

  • 多通道聚合:一个组合通道背后可以挂多条子通道,一次调用同时送到值班手机、团队群和邮箱,调用方只存一个通道码;

  • 不用重复开发:不用逐家申请机器人、研究签名与模板、处理令牌过期,各家平台的差异由一封传话消化;

  • 一个 SDK 统一集成:push-sdk.js 支持浏览器 <script>、CommonJS 和 ES Module,前端后台都能用;

  • 用户自助管理:加通道、换绑接收工具由用户自己在页面上操作,你的网站不用改代码;

  • 推送记录可查:每次推送都有记录,方便确认某条通知到底有没有送达。

四、五分钟接入

整个过程四步:引入 SDK、给用户开通道码、把通道码存进用户资料、事件发生时推送一次。

1. 引入并初始化

<script src="https://push.phprm.com/static/js/push-sdk.js"></script>
<script>
var pushSdk = YfPush.create({
  apiBase: 'https://www.phprm.com',  // 默认就是这个地址,可以省略
  mcpSource: 'my-website'            // 你的站点标识,便于后台区分调用来源
});
</script>

2. 用邮箱换通道码:挂一张授权卡片

SDK 自带完整的「一键开通」卡片,包含登录方式下拉、邮箱输入、验证码引导和轮询,你只需要给一个容器:

<div id="auth-slot"></div>

<script src="https://push.phprm.com/static/js/push-sdk.js"></script>
<script>
YfPush.create({ mcpSource: 'my-website' }).mountAuthCard('#auth-slot', {
  title: '订阅更新通知',
  desc: '用邮箱接收验证码,开通后新内容会推送到你常用的聊天工具。',
  onSuccess: function (result) {
    // result.channelCode 就是这位用户的推送通道码
    saveChannelCode(result.channelCode);   // 存进你自己的用户资料
  }
});
</script>

想自己画界面时,用 createEmailSession(email) 拿到授权链接,再按返回的间隔轮询 pollSession(sessionId):pending 继续等,success 立刻保存 channelCode,expired / consumed / failed 则提示用户重新发起。会话有效期 10 分钟,通道码只返回一次。

落地建议:在用户表里加一个 push_channel_code 字段,每个用户一条自己的通道码,后续停用、重置、查推送记录互不干扰。

3. 发一条推送

拿到通道码后,最简单的推送就是请求一个网址,把 head、body、url、avatar 带上:

https://www.phprm.com/services/push/trigger/你的通道码?head=你订阅的栏目更新了&body=新文章已发布&url=https://your-site.com/post/123&avatar=https://your-site.com/logo.png

参数值里带中文、空格或 & 时先做 URL 编码。服务端定时任务用 POST 更方便,但只接受 application/json;已经在用 SDK 的项目也可以直接调 pushSdk.sendPushMessage(通道码, { head, body, url, avatar })。其中 head 必填,body 支持 Markdown,太长时改用 POST。

五、通道管理:API 与页面按钮对照

下面这些方法,和分享页上的按钮一一对应。不写代码也可以先在页面上点一遍,理解每条通道在管什么。

页面功能SDK 方法说明
刷新 / 通道列表listChannels(code)返回父通道和子通道列表(名称、类型、通道码、状态、二维码地址)。
+ 新增推送通道addChannel(code, params)选推送类型、填通道名;群机器人填 Webhook,邮箱类型填发信人、地址、授权码。
修改editChannel(code, params)改名、改配置、启用或停用(status 0/1)。
删除deleteChannel(code, targetCode)删除指定子通道;页面当前绑定的那条,服务端会拒绝删除。
重置通道码resetChannel(code, targetCode)换一个新码并返回,旧码立即失效,适合怀疑泄露时使用。
测试sendPushMessage(code, message)向指定通道发一条测试消息,确认用户那边能收到。
推送记录recordsUrl(qrCodeUrl)把通道的二维码地址换成该通道的推送记录页。

通道码是什么:一串 32 位十六进制字符,就是一封传话里「往哪个通道发」的凭证。父通道码能推给组内所有子通道,子通道码只推到那一个接收端。

六、几条安全建议

  • 通道码等同于推送凭证,不要展示给无关的人,也不要写进公开仓库;

  • 组合通道码能触达所有子通道,只放在服务端;前端只使用当前用户自己的子通道码;

  • 怀疑泄露时调用 resetChannel 换码,旧码立即失效;

  • 给每个用户单独开子通道,停用、重置、查记录都互不影响。

七、常见问题

用户没收到验证码邮件?

先让用户检查垃圾邮件和推广邮件目录,确认邮箱拼写无误。授权会话只有 10 分钟,过期就重新调一次创建会话的方法。

轮询返回 expired / consumed / failed?

说明这次会话已经不能用了:停止轮询,让用户重新发起授权。不要复用旧的 sessionId。

需要自己的服务器做中转吗?

不需要。trigger 网址从浏览器、服务端、定时任务请求都能用;SDK 从浏览器直连官方服务,已开启跨域。

用户想换接收方式怎么办?

让用户在一封传话的通道管理页新增或修改通道即可,你的网站代码不用动,他的通道码保持不变。

八、结语

值得让用户马上知道的事,不该埋在站内信里。把事件交给一封传话,用户选自己常用的接收工具,你只维护一条通道码和一次 trigger 请求,推送这件事就接完了。除了网站推送,官方还开源了 AI 弹幕组件(一行代码给页面加实时弹幕)和 push-server Agent Skill(让 AI 助手按规范主动汇报推送),可以按需选用。

在线体验通道管理:https://push.phprm.com/message/share.html
控制台与注册:https://push.phprm.com/mcp.html
Agent 接入说明:https://push.phprm.com/skill.md

文章链接:https://www.phprm.com/develop/push.html

随便收藏,请保留本文地址!

标签:定时推送 微信推送 钉钉推送 飞书推送 cron表达式

发表留言