NeoServer Push API

Push richer messages from one endpoint.

这是一个部署在 Cloudflare Workers 上的 APNs 推送接口。它支持系统分组、基础 Markdown、 interruptionLevel、跳转 URL、图片 URL、图标 URL 和 sound,适合给一组 NeoServer iPhone 设备发测试通知和告警。

接口信息

Push Endpoint: https://ns.joyk.com/push
Health: https://ns.joyk.com/health

富字段支持

  • groupKey 映射到 APNs thread-id
  • markdown 存入 data.markdown 并生成纯文本摘要
  • interruptionLevel 映射到 APNs interruption level
  • url 用于点击跳转
  • imageUrl / iconUrl 仅供 app 内展示
  • sound 支持字符串或对象

测试表单

填写参数后直接调用 /push,系统通知仍是标准 APNs 文本,富内容在 NeoServer app 收件箱中展示。

如果填写 markdown,Worker 会忽略 body 字段,并从 Markdown 自动生成系统通知摘要。发送时请注意 Markdown 和 JSON 的特殊字符转义。

请求示例

如果带 markdown,可以不传 body;示例里保留了 URL、分组和富媒体字段。

curl -sS -X POST "https://ns.joyk.com/push" \
  -H "content-type: application/json" \
  --data '{
    "deviceTokens": ["<your-device-token>"],
    "title": "NeoServer",
    "groupKey": "server-prod-1",
    "markdown": "## CPU Alert\nUsage is **95%**",
    "interruptionLevel": "time-sensitive",
    "url": "https://example.com/alert/123",
    "imageUrl": "https://example.com/image.png",
    "iconUrl": "https://example.com/icon.png",
    "sound": "default",
    "badge": 1
  }'

结果

提交后这里会显示 Worker 返回结果。

{
  "ok": true
}