Tính năng nhắn tin theo nhóm thiết bị cho phép bạn thêm nhiều thiết bị vào một nhóm duy nhất. Phương thức này tương tự như thông báo theo chủ đề nhưng có thêm bước xác thực để đảm bảo chỉ máy chủ của bạn mới có thể quản lý tư cách thành viên nhóm. Ví dụ: nếu bạn muốn gửi thông báo riêng đến từng mẫu điện thoại, máy chủ của bạn có thể thêm/xoá các lượt đăng ký đến những nhóm thích hợp và gửi thông báo thích hợp cho từng nhóm. Thông báo về nhóm thiết bị khác với thông báo theo chủ đề ở chỗ thông báo này liên quan đến việc quản lý các nhóm thiết bị từ máy chủ của bạn thay vì trực tiếp trong ứng dụng.
Số thành viên tối đa được phép cho một khoá thông báo là 20.
Quản lý nhóm thiết bị
Trước khi gửi tin nhắn đến một nhóm thiết bị, bạn phải:
-
Lấy mã đăng ký cho từng thiết bị bạn muốn thêm vào nhóm.
-
Tạo
notification_key
để xác định nhóm thiết bị bằng cách ánh xạ một nhóm cụ thể (thường là người dùng) với tất cả các mã thông báo đăng ký liên kết của nhóm đó. Bạn có thể tạo khoá thông báo trên máy chủ ứng dụng.
Quá trình quản lý cơ bản đối với các nhóm thiết bị – tạo và xoá nhóm cũng như thêm hoặc xoá thiết bị – được thực hiện thông qua API HTTP phiên bản 1, sử dụng các mã thông báo ngắn hạn để cho phép gửi yêu cầu. Hãy xem bài viết Khoá quản lý nhóm thiết bị để biết danh sách các khoá được hỗ trợ.
Quản lý nhóm thiết bị trên máy chủ ứng dụng
Tạo một nhóm thiết bị
Để tạo một nhóm thiết bị, hãy gửi yêu cầu POST cung cấp tên cho nhóm và danh sách mã thông báo đăng ký cho các thiết bị đó.
FCM trả về một notification_key
mới đại diện cho nhóm thiết bị.
Yêu cầu POST qua HTTP
Hãy gửi yêu cầu như sau đến https://fcm.googleapis.com/fcm/notification
:
https://fcm.googleapis.com/fcm/notification Content-Type:application/json access_token_auth: true Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA project_id:SENDER_ID { "operation": "create", "notification_key_name": "appUser-Chris", "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "cR1rjyj4_Kc:APA91bGusqbypSuMdsh7jSNrW4nzsM...", ... ]
notification_key_name
là tên hoặc giá trị nhận dạng (ví dụ: có thể là tên người dùng) dành riêng cho một nhóm nhất định. notification_key_name
và notification_key
là duy nhất đối với một nhóm mã thông báo đăng ký. Điều quan trọng là notification_key_name
phải là
duy nhất cho mỗi ứng dụng khách nếu bạn có nhiều ứng dụng khách cho cùng một
mã người gửi.
Điều này đảm bảo rằng tin nhắn chỉ được gửi đến ứng dụng đích mong muốn.
Định dạng phản hồi
Yêu cầu thành công sẽ trả về một notification_key
như sau:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Lưu notification_key
và notification_key_name
tương ứng để sử dụng trong các thao tác tiếp theo.
Truy xuất khoá thông báo
Nếu bạn cần truy xuất khoá thông báo hiện có, hãy sử dụng notification_key_name
trong yêu cầu GET như minh hoạ:
https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris Content-Type:application/json access_token_auth: true Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA project_id:SENDER_ID {}
Đối với mỗi yêu cầu GET cho một tên khoá thông báo nhất định, máy chủ sẽ trả về một chuỗi mã hoá riêng biệt. Mặc dù mỗi chuỗi có vẻ như là một khoá khác nhau, nhưng thực ra đây là một giá trị "notification_key" hợp lệ.
Thêm và xoá thiết bị khỏi nhóm thiết bị
Để thêm hoặc xoá thiết bị khỏi nhóm hiện có, hãy gửi yêu cầu POST trong đó tham số operation
được đặt thành add
hoặc remove
, đồng thời cung cấp mã thông báo đăng ký để thêm hoặc xoá.
Yêu cầu POST qua HTTP
Ví dụ: để thêm một thiết bị có mã thông báo đăng ký bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
vào appUser-Chris
, bạn sẽ gửi yêu cầu sau:
{
"operation": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Định dạng phản hồi
Khi yêu cầu thêm hoặc xoá một thiết bị thành công, hệ thống sẽ trả về một notification_key
như sau:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Khoá quản lý nhóm thiết bị
Bảng sau đây liệt kê các khoá để tạo nhóm thiết bị cũng như thêm và xoá thành viên.
Thông số | Hoạt động sử dụng | Mô tả |
---|---|---|
operation |
Bắt buộc, chuỗi | Thao tác cần thực hiện.Các giá trị hợp lệ là create , add và remove . |
notification_key_name |
Bắt buộc, chuỗi | Tên do người dùng xác định của nhóm thiết bị để tạo hoặc sửa đổi. |
notification_key |
Bắt buộc (ngoại trừ thao tác create , chuỗi |
Giá trị nhận dạng duy nhất của nhóm thiết bị. Giá trị này được trả về trong phản hồi cho một thao tác create thành công và là bắt buộc đối với tất cả các thao tác tiếp theo trên nhóm thiết bị. |
registration_ids |
Mảng chuỗi bắt buộc | Mã thông báo thiết bị để thêm hoặc xoá. Nếu bạn xoá tất cả các mã thông báo đăng ký hiện có khỏi một nhóm thiết bị, thì FCM sẽ xoá nhóm thiết bị đó. |
Gửi tin nhắn đến các nhóm thiết bị
Để gửi thông báo đến các nhóm thiết bị, hãy sử dụng API HTTP phiên bản 1. Nếu hiện đang gửi đến các nhóm thiết bị bằng cách sử dụng API gửi cũ không dùng nữa cho HTTP hoặc XMPP hoặc bất kỳ phiên bản nào cũ hơn của SDK quản trị Firebase dành cho Node.js dựa trên các giao thức cũ, bạn nên di chuyển sang API HTTP phiên bản 1 sớm nhất có thể. Các API gửi cũ sẽ bị vô hiệu hoá và xoá vào tháng 6 năm 2024.
Việc gửi tin nhắn đến một nhóm thiết bị rất giống với việc gửi tin nhắn đến một thiết bị riêng lẻ, sử dụng cùng một phương thức để cho phép gửi yêu cầu. Đặt trường token
thành khoá thông báo nhóm:
Kiến trúc chuyển trạng thái đại diện (REST)
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1
Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"data":{
"hello": "This is a Firebase Cloud Messaging device group message!"
}
}
}
Lệnh cURL
curl -X POST -H "Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA" -H "Content-Type: application/json" -d '{
"message":{
"data":{
"hello": "This is a Firebase Cloud Messaging device group message!"
},
"token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}}' https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send
Gửi thông báo ngược dòng đến nhóm thiết bị
Để gửi thông báo ngược dòng đến các nhóm thiết bị trên ứng dụng của Apple, ứng dụng Apple cần triển khai FIRMessaging.sendMessage:
(void)sendMessage:(nonnull NSDictionary *)message to:(nonnull NSString *)receiver withMessageID:(nonnull NSString *)messageID timeToLive:(int64_t)ttl;