Skip to content

FCM Box

这是一个可以接受自定义消息的 app。代码已在 Github 开源,如果有额外的需求可以在 Firebase Cloud Message 中创建项目并构建自己的后端。

中国大陆的大多数时候可以正常使用 FCM 服务。对于消息未及时送达的情况,这个 App 提供了一个刷新按钮用以从后端数据库中拉取至多 200 条记录。

Google 整合了多种情况下的消息推送为 FCM (Firebase Cloud Message),支持 Android, iOS 和 Web。当然主要是 Android。要为自己的 app 添加这个推送服务,首先需要创建一个 Project,针对客户端下载项目中提供的验证文件 google-service.json。针对服务端下载项目中提供的服务账号密钥 service-account.json,并且在 app 中添加相应的依赖库。

App 安装在激活了 Google 服务的 Android 设备上会自动生成一个 fcmtoken,这个 token 就是 app 的唯一标识,如果这个 token 不慎泄露了也不用担心,只有这个项目的 service-account.json 才能使用这个 token 来发送消息。

简而言之,如果要使用我在 Github Releases 中提供的软件,则必须要使用我的后端地址。

App 的 云端 / Cloud 页面里提供了一个可以自定义后端的功能

  1. 创建项目在 Firebase 控制台创建一个新的项目,按照提示完成项目的设置。

  2. 下载验证文件 在项目设置中创建并找到你的 Android 应用,下载 google-service.json 文件并将其放到你的 Android 项目的 app/ 目录下。

  3. 下载服务账号密钥 在项目设置中找到服务账号,生成一个新的密钥并下载 service-account.json 文件。

  4. 配置后端地址 将下载的 service-account.json 文件上传到你的服务器,并将后端地址配置为你的服务器地址。

在 firebase 中创建项目的门槛其实有点高,如果你不想自己 创建项目 + 构建 App + 搭建后端 的话可以使用我提供的后端地址。

  1. 编辑一个邮件,标题为 register 发送到 fcmboxregister@wepayto.win 并接受回复的邮件以注册一个 authorization,接受邮件可能需要至多 2~3 分钟,可能会出现在垃圾邮件里。

    Terminal window
    fcmboxregister@wepayto.win
  2. 在 App 内的设置里将后端地址配置为 https://fcmbackend.wepayto.win,并且输入上一步中注册的 authorization

    Terminal window
    https://fcmbackend.wepayto.win
  3. 注意底部弹出的提示以确认可以链接到该后端地址。

  4. 后端地址接受一个 POST 请求,可用如下命令测试

    Terminal window
    curl -X POST https://fcmbackend.wepayto.win -H "Authorization: $authorization" -d '{"action": "message", "data": "100% success","service": "myCheckService", "overview": "results overview", "image": "https://apac-east1-i.wepayto.win/MD3/check_circle.png"}'
  1. 支持邮箱注册和 Google 登陆。
  2. 注册并登陆成功之后,等待几秒中刷新后可以看到面板上给出了 YOUR_API_KEYAPI_ENDPOINT,作为软件的 authorization 和后端地址。
  3. 在 App 内链接成功后可以在点击页面上的 Send Test Message 来测试发送消息。

POST 请求中完整的 body 结构如下,service 作为消息提示中的较大的字体,overview 作为消息提示中较小的字体。本 app 支持简易的 JSON 格式的 data,为了结果的清晰可读,不要使用多层嵌套的结构。

{
"action": "message",
"data": "test data",
"service": "myService",
"overview": "test overview",
"image": "https://apac-east1-i.wepayto.win/MD3/cloud_alert.png"
}

MD3 图片示例,FCM 消息在测试过程中发现仅支持 png 格式的图片。

Terminal window
https://apac-east1-i.wepayto.win/MD3/cloud_alert.png
md3 image Cloud Alert

对于上述中的 JSON 格式消息, App 内的渲染效果如下 image

  • 着重优化了质感,添加了大量震动效果。
  • 不需要手动输入后端地址,可以直接 Cloudflare 和 Firebase 二选一
  • 导航页添加了 FCM Status,长摁可以复制 FCM Token,有捷径快速进入系统的 FCM Diagnostics 页面
  • 添加了 Request API 页面,可以在 App 内测试 FCM 消息