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

时间:2017-02-24 18:15:29

标签: django google-cloud-messaging

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

第三方Android开发人员告诉他们他们只会给我FCM令牌,我应该能够发送通知。我对the doc

中的以下代码段感到有些困惑
devices = FCMDevice.objects.all()

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

{
        "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
        "notification" : {
          "body" : "great match!",
          "title" : "Portugal vs. Denmark",
          "icon" : "myicon"
        }
    }

......与此相关:

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"})

问题将最简单的通知发送到由其FCM令牌识别的

的最小代码段是什么

2 个答案:

答案 0 :(得分:3)

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

  1. 安装django-fcm并将'fcm_django'添加到INSTALLED_APPS
  2. 运行迁移,以便准备好设备关系 在您的数据库中。
  3. 假设您已经可以从Firebase发送通知 控制台,转到Firebase控制台设置。在云上 消息选项卡,复制服务器密钥。将此密钥保存在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"})
  7. 为了完全理解django-fcm是如何工作的,我建议您实际查看源代码。如果一个开源软件包令我感到不安,那么实际查看源代码和阅读评论有时会很有启发性。 django-fcm是一个小而简单的包。 utils.py文件是最重要的。这就是组成消息并使用python的请求包发送到Firebase的地方。要了解此文件。另请阅读https://firebase.google.com/docs/cloud-messaging/http-server-ref#downstream-http-messages-json

    的firebase文档

答案 1 :(得分:0)

首先,FCMDevice是一个django模型对象,它包含有关已注册设备的数据,可以向其发送通知。

预计您提供该数据。当移动设备/浏览器从fcm库从其FCM令牌获取该数据时,您应该在使用fcm-django库的后端中注册该令牌。

意思是,使用库中的模型FCMDevice在数据库中创建一个对象。

发送通知所需的最小代码正是您在此帖中发布的。

我相信您应该阅读一些django教程,以便更好地了解实际的模型。