Gotify 应用消息
Gotify 由自建服务接收消息,再推送到已登录客户端。本文依据 Gotify 官方文档整理,核验日期为 2026-09-08;未对真实 Gotify 实例执行发送验证。
- 已有可访问的 Gotify HTTPS 实例。
- 已创建接收用户并在客户端登录。
- 有权限为发送来源创建 Application。
- 登录 Gotify Web 管理界面。
- 创建一个 Application,名称对应实际发送来源。
- 保存 Application Token。
- 向实例的
/message接口发送标题、正文和可选优先级。 - 在 Web 或移动客户端确认消息。
| 字段 | 必需 | 说明 |
|---|---|---|
GOTIFY_BASE_URL | 是 | 自建实例 HTTPS 地址 |
GOTIFY_APP_TOKEN | 是 | Application Token,不是用户密码或 Client Token |
priority | 否 | 消息优先级整数,客户端行为取决于配置 |
JavaScript 示例需要 Node.js 20 或更新版本;Python 示例需要安装 requests。
curl -X POST 'https://gotify.example.com/message?token=GOTIFY_APP_TOKEN' \ -H 'Content-Type: application/json' \ -d '{"title":"连通性测试","message":"通知渠道连通性测试","priority":5}'const url = new URL('/message', process.env.GOTIFY_BASE_URL);url.searchParams.set('token', process.env.GOTIFY_APP_TOKEN);const response = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ title: '连通性测试', message: '通知渠道连通性测试', priority: 5, }),});
if (!response.ok) throw new Error(`HTTP ${response.status}`);console.log(await response.json());import osimport requests
response = requests.post( f"{os.environ['GOTIFY_BASE_URL'].rstrip('/')}/message", params={"token": os.environ["GOTIFY_APP_TOKEN"]}, json={"title": "连通性测试", "message": "通知渠道连通性测试", "priority": 5}, timeout=15,)response.raise_for_status()print(response.json())成功响应包含创建的消息对象和 ID。还应在至少一个已登录客户端确认消息显示,并检查应用名称是否正确。
- 每个调用方使用独立 Application Token,泄露时可以单独撤销。
- 通过 HTTPS 暴露服务,管理入口应受认证和网络策略保护。
- 不把 Token 放入前端代码或反向代理访问日志。
401:确认使用 Application Token,而不是 Client Token 或用户密码。
请求成功但移动端无通知:检查客户端登录、后台运行和系统通知权限。
自建地址错误:确认反向代理路径是否保留 /message。