通过 FCM 令牌从 Django 向 GCM 发送通知

Cra*_*rog 6 django google-cloud-messaging firebase-cloud-messaging

我正在做 Django-Android 交互的第一步,我对 FCM 技术如何工作的逻辑有点困惑。我已经通过 pip 安装了 django-fcm,现在我的目标是通过 FCM 令牌向 Android 设备发送通知,该令牌已由 Android 设备通过 REST 资源发送到服务器。

第三方 Android 开发人员告诉我他们只会给我 FCM 令牌,我应该能够发送通知。我对文档中的以下代码片段感到有些困惑

devices = FCMDevice.objects.all()
Run Code Online (Sandbox Code Playgroud)

什么是FCM设备?以及示例中的 JSON 代码如何:

{
        "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
        "notification" : {
          "body" : "great match!",
          "title" : "Portugal vs. Denmark",
          "icon" : "myicon"
        }
    }
Run Code Online (Sandbox Code Playgroud)

...与此相关:

device = FCMDevice.objects.all().first()
device.send_message("Title", "Message")
device.send_message(data={"test": "test"})
device.send_message(title="Title", body="Message", icon=..., data={"test": "test"})
Run Code Online (Sandbox Code Playgroud)

问题是将最简单的通知发送到由其 FCM 令牌标识的 Android 设备的最少代码片段什么

Nje*_*uni 7

要通过 django 应用服务器发送通知,您需要:

  1. 安装 django-fcm 并添加'fcm_django'到您的INSTALLED_APPS.
  2. 运行迁移以便在数据库中准备好设备关系。
  3. 假设您已经可以从 Firebase 控制台发送通知,请转到您的 Firebase 控制台设置。在 Cloud Messaging 选项卡上,复制服务器密钥。将此密钥保存在您的 Django 配置设置中FCM_APIKEY = <your_api_key>
  4. 转到您的 android 设备并检索令牌,此文档位于 https://firebase.google.com/docs/cloud-messaging/android/client
  5. 现在在 django 中创建一个 Device 实例,使用检索到的令牌作为 reg_id。
  6. 要发送通知,您可以使用发送通知 device_instance.send_message (notification = { "body" : "great match!", "title" : "Portugal vs. Denmark", "icon" : "myicon"})

为了完全理解 django-fcm 的工作原理,我建议您实际阅读源代码。如果一个开源包让我感到不安,实际上查看源代码和阅读评论有时会有所启发。django-fcm 是一个小而简单的包。utils.py 文件是最重要的。这就是使用 python 的请求包编写消息并发送到 Firebase 的地方。要了解这个文件。另请阅读 firebase 文档:https : //firebase.google.com/docs/cloud-messaging/http-server-ref#downstream-http-messages-json