Gửi thông báo đến device group Firebase Cloud Messaging(FCM)

Trong quá trình sử dụng dịch vụ gửi thông báo thông qua Firebase Cloud Messaging(FCM), đôi khi bạn sẽ cần gửi thông báo đến 1 group device riêng biệt, bài viết này mình sẽ hướng dẫn mọi người tạo và quản lý group device của Firebase.

Điều kiện cần để gửi thông báo qua group:

Device token: Đây là token được tạo ra từ mỗi thiết bị, bạn có thể tham khảo bài viết tại Link để lấy device token.

notification_key: đây mã key tương ứng với mỗi group được tạo ra.

1. Tạo device group

Để tạo 1 device group, bạn cần gửi 1 POST request bao gồm: tên group, danh sách device token, FCM sẽ trả về 1 notification_key tương ứng với group bạn vừa tạo:

Request:

https://fcm.googleapis.com/fcm/notification
Content-Type:application/json
Authorization:key=API_KEY
project_id:SENDER_ID

{
   "operation": "create",
   "notification_key_name": "appUser-Chris",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
                        "cR1rjyj4_Kc:APA91bGusqbypSuMdsh7jSNrW4nzsM...",
                        ... ]

Reponse:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}
2. Truy xuất notification_key theo tên group

Để tìm notification_key theo tên group đã được tạo trước đó, bạn chỉ cần tạo 1 request GET với notification_key_name là tên của group.

https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris
Content-Type:application/json
Authorization:key=API_KEY
project_id:SENDER_ID
{}
3. Thêm hoặc xóa device trong group

Để thêm hoặc xóa 1 deivce trong group đã tồn tại, bạn cần gửi lên 1 method POST với tham số operation add hoặc remove và cung cấp device token cần thêm hoặc xóa.

Request:

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}

Response:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}
4. Gửi thông báo đến thiết bị

Sau khi bạn đã tạo được group device ở bước trên, bạn có thể gửi thông báo đến group đó bằng method POST như bên dưới:

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{
  "to": "aUniqueKey",
  "data": {
    "hello": "This is a Firebase Cloud Messaging Device Group Message!",
   }
}

Data response nếu tất cả device token gửi thành công:

{
  "success": 2,
  "failure": 0
}

Data reponse nếu có device token gửi không được:

{
  "success":1,
  "failure":2,
  "failed_registration_ids":[
     "regId1",
     "regId2"
  ]
}

Như vậy là bạn có thể hoàn thành việc gửi thông báo cho 1 group thiết bị, chúc các bạn thành công.

Leave a Comment