Bark 推送测试失败排查指南
问题描述
设备密钥和服务器地址都已配置,但推送测试失败。
排查步骤
1. 检查环境变量是否生效
问题: Next.js 需要重启才能加载新的环境变量
解决方案:
# 停止开发服务器(按 Ctrl+C)
# 然后重新启动
npm run dev
⚠️ 重要: 修改
.env.local后必须重启开发服务器!
2. 使用测试脚本直接测试
我已经创建了一个测试脚本 test-bark.js,可以直接测试 Bark 服务器连接:
node test-bark.js YOUR_DEVICE_KEY
将 YOUR_DEVICE_KEY 替换为您的实际设备密钥。
这个脚本会:
- 显示完整的请求和响应信息
- 帮助定位具体的错误原因
3. 检查浏览器控制台错误
- 打开浏览器开发者工具(F12)
- 切换到 Console 标签
- 点击"测试通知"按钮
- 查看是否有红色错误信息
4. 检查网络请求
- 打开浏览器开发者工具(F12)
- 切换到 Network 标签
- 点击"测试通知"按钮
- 查找
/api/notifications/bark/test请求 - 点击该请求,查看:
- Request 标签:发送的数据
- Response 标签:返回的错误信息
5. 常见错误原因
错误 1: "Bark server URL not configured"
原因: 环境变量未加载 解决: 重启开发服务器
错误 2: "Device key is required"
原因: 设备密钥未正确发送 解决: 检查UI中是否正确填写设备密钥
错误 3: HTTP 404 或网络错误
原因: Bark 服务器地址不正确或网络问题 解决:
- 检查
.env.local中的BARK_SERVER_URL是否正确 - 在浏览器中直接访问服务器地址,确认可以访问
- 检查网络连接
错误 4: "Failed to fetch"
原因: CORS 问题或网络问题 解决:
- 使用
test-bark.js脚本测试(绕过浏览器CORS限制) - 检查网络连接
6. 验证 Bark 配置
在 Bark App 中手动测试:
- 复制完整URL:
https://bark-worker.1060139133.workers.dev/YOUR_DEVICE_KEY/测试/这是测试消息 - 在浏览器或 Postman 中访问这个URL
- 查看是否收到通知
如果手动测试成功,说明Bark服务器和设备密钥都是正确的,问题在于代码实现。
7. 检查服务器日志
如果您的开发服务器正在运行,查看终端输出是否有错误信息。
临时解决方案
如果以上方法都无法解决,可以尝试:
-
使用 GET 方式测试(Bark 支持 GET 请求):
https://bark-worker.1060139133.workers.dev/YOUR_DEVICE_KEY/测试标题/测试内容在浏览器中直接访问这个链接
-
检查防火墙/代理设置
- 确认没有防火墙阻止访问
- 如果使用代理,确认代理配置正确
需要提供的调试信息
如果问题仍然存在,请提供以下信息以便进一步诊断:
- 浏览器控制台的完整错误信息(截图)
- Network 标签中请求的详细信息(Request/Response)
test-bark.js脚本的输出结果- 开发服务器终端的输出
快速诊断命令
# 1. 检查环境变量是否存在
Get-Content .env.local | Select-String "BARK_SERVER_URL"
# 2. 运行测试脚本
node test-bark.js YOUR_DEVICE_KEY
# 3. 重启开发服务器
# 先按 Ctrl+C 停止,然后:
npm run dev