LogoPaperX 文档

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. 检查浏览器控制台错误

  1. 打开浏览器开发者工具(F12)
  2. 切换到 Console 标签
  3. 点击"测试通知"按钮
  4. 查看是否有红色错误信息

4. 检查网络请求

  1. 打开浏览器开发者工具(F12)
  2. 切换到 Network 标签
  3. 点击"测试通知"按钮
  4. 查找 /api/notifications/bark/test 请求
  5. 点击该请求,查看:
    • 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 中手动测试:

  1. 复制完整URL: https://bark-worker.1060139133.workers.dev/YOUR_DEVICE_KEY/测试/这是测试消息
  2. 在浏览器或 Postman 中访问这个URL
  3. 查看是否收到通知

如果手动测试成功,说明Bark服务器和设备密钥都是正确的,问题在于代码实现。

7. 检查服务器日志

如果您的开发服务器正在运行,查看终端输出是否有错误信息。

临时解决方案

如果以上方法都无法解决,可以尝试:

  1. 使用 GET 方式测试(Bark 支持 GET 请求):

    https://bark-worker.1060139133.workers.dev/YOUR_DEVICE_KEY/测试标题/测试内容
    

    在浏览器中直接访问这个链接

  2. 检查防火墙/代理设置

    • 确认没有防火墙阻止访问
    • 如果使用代理,确认代理配置正确

需要提供的调试信息

如果问题仍然存在,请提供以下信息以便进一步诊断:

  1. 浏览器控制台的完整错误信息(截图)
  2. Network 标签中请求的详细信息(Request/Response)
  3. test-bark.js 脚本的输出结果
  4. 开发服务器终端的输出

快速诊断命令

# 1. 检查环境变量是否存在
Get-Content .env.local | Select-String "BARK_SERVER_URL"

# 2. 运行测试脚本
node test-bark.js YOUR_DEVICE_KEY

# 3. 重启开发服务器
# 先按 Ctrl+C 停止,然后:
npm run dev