Gửi tin nhắn đến các nhóm thiết bị trên nền tảng Apple

Nhắn tin nhóm thiết bị cho phép bạn thêm nhiều thiết bị vào một nhóm. Điều này tương tự như nhắn tin theo chủ đề, nhưng bao gồm xác thực để đảm bảo rằng tư cách thành viên nhóm chỉ được quản lý bởi máy chủ của bạn. Ví dụ: nếu bạn muốn gửi các tin nhắn khác nhau đến các kiểu điện thoại khác nhau, máy chủ của bạn có thể thêm/xóa đăng ký vào các nhóm thích hợp và gửi tin nhắn thích hợp đến từng nhóm. Nhắn tin nhóm thiết bị khác với nhắn tin theo chủ đề ở chỗ nó liên quan đến việc quản lý nhóm thiết bị từ máy chủ thay vì trực tiếp trong ứng dụng của bạn.

Số lượng thành viên tối đa được phép cho một khóa 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:

  1. Nhận mã thông báo đăng ký cho từng thiết bị bạn muốn thêm vào nhóm.

  2. 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) tới tất cả các mã thông báo đăng ký được liên kết của nhóm. Bạn có thể tạo khóa thông báo trên máy chủ ứng dụng.

Quản lý cơ bản các nhóm thiết bị — tạo và xóa nhóm cũng như thêm hoặc xóa thiết bị — được thực hiện thông qua API HTTP v1, sử dụng mã thông báo tồn tại trong thời gian ngắn để ủy quyền gửi yêu cầu . Xem Khóa quản lý nhóm thiết bị để biết danh sách các khóa được hỗ trợ.

Quản lý nhóm thiết bị trên máy chủ ứng dụng

Tạo nhóm thiết bị

Để tạo 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 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 HTTP POST

Gửi yêu cầu như sau tới 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 số nhận dạng (ví dụ: nó có thể là tên người dùng) duy nhất cho một nhóm nhất định. notification_key_namenotification_key là duy nhất cho một nhóm mã thông báo đăng ký. Điều quan trọng là notification_key_name 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 ID người gửi . Điều này đảm bảo rằng tin nhắn chỉ được gửi đến ứng dụng mục tiêu dự định.

Định dạng phản hồi

Yêu cầu thành công sẽ trả về notification_key như sau:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

Lưu notification_keynotification_key_name tương ứng để sử dụng trong các thao tác tiếp theo.

Lấy khóa thông báo

Nếu bạn cần truy xuất khóa thông báo hiện có, hãy sử dụng notification_key_name trong yêu cầu GET như được hiển thị:

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 khóa thông báo nhất định, máy chủ sẽ trả về một chuỗi được mã hóa duy nhất. Mặc dù mỗi chuỗi có thể trông có vẻ là một khóa khác nhau nhưng thực tế đó là một giá trị `notification_key` hợp lệ.

Thêm và xóa thiết bị khỏi nhóm thiết bị

Để thêm hoặc xóa thiết bị khỏi nhóm hiện có, hãy gửi yêu cầu POST với tham số operation được đặt thành add hoặc remove và cung cấp mã thông báo đăng ký để thêm hoặc xóa.

Yêu cầu HTTP POST

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 này:

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

Định dạng phản hồi

Yêu cầu thành công để thêm hoặc xóa thiết bị sẽ trả về notification_key như sau:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

Khóa quản lý nhóm thiết bị

Bảng sau liệt kê các phím để tạo nhóm thiết bị cũng như thêm và xóa thành viên.

Bảng 10. Phím quản lý nhóm thiết bị.

Tham số Cách sử dụng Sự miêu tả
operation Bắt buộc, chuỗi Thao tác để chạy. Các giá trị hợp lệ là create , addremove .
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 Mã định danh duy nhất của nhóm thiết bị. Giá trị này được trả về trong phản hồi cho thao tác create thành công và được yêu cầu cho tất cả các thao tác tiếp theo trên nhóm thiết bị.
registration_ids Bắt buộc, mảng chuỗi Mã thông báo thiết bị để thêm hoặc xóa. Nếu bạn xóa tất cả mã thông báo đăng ký hiện có khỏi một nhóm thiết bị, FCM sẽ xóa nhóm thiết bị đó.

Gửi tin nhắn đến các nhóm thiết bị

Để gửi tin nhắn đến các nhóm thiết bị, hãy sử dụng API HTTP v1. Nếu bạn hiện đang gửi tới các nhóm thiết bị bằng cách sử dụng API gửi cũ không được dùng nữa cho HTTP hoặc XMPP hoặc bất kỳ phiên bản cũ hơn nào của SDK quản trị Firebase dành cho Node.js dựa trên các giao thức cũ, chúng tôi thực sự khuyên bạn nên di chuyển sang HTTP v1 API trong cơ hội sớm nhất. Các API gửi cũ sẽ bị vô hiệu hóa và xóa vào tháng 6 năm 2024.

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 pháp để ủy quyền gửi yêu cầu . Đặt trường token thành khóa thông báo nhóm:

NGHỈ NGƠI

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 tin nhắn ngược dòng tới các nhóm thiết bị

Để gửi tin nhắn ngược dòng tới các nhóm thiết bị trên ứng dụng Apple, ứng dụng khách 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;