Appearance
快速开始
EventRelay 让业务系统通过 Open API 发送可交互 message,终端用户通过 Web Push 收到通知并在浏览器中批准/拒绝,平台再将结果 HMAC 签名 投递到你的 callback_url。
北极星流程
text
POST /v1/open/messages(带 ext)
→ Web Push 载荷仅 message_id
→ 用户在 Web 收件箱 respond
→ callback 回传(含 ext + response)1. 注册开发者账号
在 开发者控制台 或 POST /v1/developer/auth/email/register 注册。
注册响应 仅此一次 返回明文:
appid— Open API 应用 IDopen_secret— M2M 密钥callback_secret— Webhook 验签密钥(注册响应 仅此一次 返回)
WARNING
请立即保存 open_secret 与 callback_secret。丢失后须在控制台 API 密钥 页重置,旧密钥立即失效。
验证邮箱:POST /v1/developer/auth/email/verify,然后 POST /v1/developer/auth/email/login 获取 Developer JWT(控制台会话用)。
2. 配置 callback
在控制台 设置 页保存 HTTPS callback_url;open_secret 与 callback_secret 在 API 密钥 页查看(脱敏)与重置(明文仅展示一次)。
详见 Callback 验签。
3. 获取订阅用户
每个应用注册时自动创建默认 Topic:{username}/default。
在 开发者控制台 邀请订阅 页生成二维码 / 链接;或用 Open API:
bash
curl -sS -X POST "$API/v1/open/invites" \
-H "Authorization: Bearer $APPID:$OPEN_SECRET" \
-H "Content-Type: application/json" \
-d '{"topic":"acme/default"}'终端用户扫码或打开链接,在 Web 端 POST /v1/app/join 完成 账号级 订阅。
4. 发送 message
bash
curl -sS -X POST "$API/v1/open/messages" \
-H "Authorization: Bearer $APPID:$OPEN_SECRET" \
-H "Content-Type: application/json" \
-d '{
"topic": "acme/default",
"type": "approval",
"ext": "order-9281",
"payload": {
"title": "部署批准",
"body": "生产环境 v2.3.1 待确认",
"approve_label": "批准",
"reject_label": "拒绝"
}
}'响应:{ "message_id": "...", "status": "queued" }(立即)或 "scheduled"(定时)。
可选定时:在 body 中加 "scheduled_at": 1710000000000(UTC 毫秒,须在未来)。创建时计入当日 messages_per_day 配额。
在 开发者控制台 概览 页点击 发送推送,可在弹窗中选择「立即发送」或「定时发送」做联调(控制台 demo-messages 接口,同样支持 scheduled_at)。
5. 验证 callback
- 在控制台配置
callback_url与callback_secret - 调用
POST /v1/open/webhooks/test(或控制台 测试 Webhook 按钮) - 你的服务端验签并返回
2xx
鉴权速查
| 面 | Header |
|---|---|
| Open M2M | Authorization: Bearer {appid}:{open_secret} |
| Developer 控制台 API | Authorization: Bearer {access_token} |
下一步
- Topic 策略 — 默认
{username}/default - Open API 参考 — message / invite / 列表 / 取消
- Callback 验签 — 事件类型与 HMAC 算法
- SDK 集成 — Node.js / Go / Python / PHP 示例代码
- 平台能力 — 当前可用集成能力一览
生产 API:https://er.iuu.pub。