إرسال رسائل إلى مجموعات الأجهزة على Android

تتيح لك رسائل مجموعة الأجهزة إضافة أجهزة متعددة إلى مجموعة واحدة. يشبه هذا مراسلة الموضوع، ولكنه يتضمن المصادقة للتأكد من أن عضوية المجموعة تتم إدارتها فقط من خلال الخوادم الخاصة بك. على سبيل المثال، إذا كنت تريد إرسال رسائل مختلفة إلى طرز هواتف مختلفة، فيمكن لخوادمك إضافة/إزالة التسجيلات إلى المجموعات المناسبة وإرسال الرسالة المناسبة إلى كل مجموعة. تختلف مراسلة مجموعة الأجهزة عن مراسلة الموضوع من حيث أنها تتضمن إدارة مجموعات الأجهزة من خوادمك بدلاً من إدارتها مباشرة داخل التطبيق الخاص بك.

الحد الأقصى لعدد الأعضاء المسموح به لمفتاح الإعلام هو 20.

إدارة مجموعات الأجهزة

قبل إرسال الرسائل إلى مجموعة أجهزة، يجب عليك:

  1. احصل على رموز التسجيل لكل جهاز تريد إضافته إلى المجموعة.

  2. قم بإنشاء notification_key ، الذي يحدد مجموعة الأجهزة عن طريق تعيين مجموعة معينة (عادةً مستخدم) لجميع رموز التسجيل المرتبطة بالمجموعة. يمكنك إنشاء مفاتيح الإشعارات على خادم التطبيق.

يتم تنفيذ الإدارة الأساسية لمجموعات الأجهزة - إنشاء المجموعات وإزالتها، وإضافة الأجهزة أو إزالتها - عبر واجهة برمجة تطبيقات HTTP v1، باستخدام الرموز المميزة قصيرة العمر للسماح بطلبات الإرسال . راجع مفاتيح إدارة مجموعة الأجهزة للحصول على قائمة بالمفاتيح المدعومة.

إدارة مجموعات الأجهزة على خادم التطبيق

إنشاء مجموعة الأجهزة

لإنشاء مجموعة أجهزة، أرسل طلب POST الذي يوفر اسمًا للمجموعة وقائمة برموز التسجيل المميزة للأجهزة. تقوم FCM بإرجاع notification_key جديد يمثل مجموعة الأجهزة.

طلب HTTP POST

أرسل طلبًا مثل ما يلي إلى 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 هو اسم أو معرف (على سبيل المثال، يمكن أن يكون اسم مستخدم) فريد لمجموعة معينة. يعد notification_key_name و notification_key فريدين لمجموعة من الرموز المميزة للتسجيل. من المهم أن يكون notification_key_name فريدًا لكل تطبيق عميل إذا كان لديك تطبيقات عميل متعددة لنفس معرف المرسل . وهذا يضمن أن الرسائل تذهب فقط إلى التطبيق المستهدف المقصود.

تنسيق الاستجابة

يقوم الطلب الناجح بإرجاع notification_key كما يلي:

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

احفظ مفتاح notification_key واسم notification_key_name المقابل لاستخدامهما في العمليات اللاحقة.

استرداد مفتاح الإخطار

إذا كنت بحاجة إلى استرداد مفتاح إشعار موجود، فاستخدم notification_key_name في طلب GET كما هو موضح:

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
{}

لكل طلب GET لاسم مفتاح إعلام معين، يقوم الخادم بإرجاع سلسلة مشفرة فريدة. على الرغم من أن كل سلسلة قد تبدو وكأنها مفتاح مختلف، إلا أنها في الواقع قيمة "مفتاح_إشعار" صالحة.

إضافة وإزالة الأجهزة من مجموعة الأجهزة

لإضافة أجهزة أو إزالتها من مجموعة موجودة، أرسل طلب POST مع تعيين معلمة operation add أو remove ، وقم بتوفير رموز التسجيل المميزة للإضافة أو الإزالة.

طلب HTTP POST

على سبيل المثال، لإضافة جهاز برمز التسجيل bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... إلى appUser-Chris ، يمكنك إرسال هذا الطلب:

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

تنسيق الاستجابة

يؤدي الطلب الناجح لإضافة جهاز أو إزالته إلى إرجاع notification_key كما يلي:

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

مفاتيح إدارة مجموعة الأجهزة

يسرد الجدول التالي المفاتيح الخاصة بإنشاء مجموعات الأجهزة وإضافة الأعضاء وإزالتهم.

الجدول 10. مفاتيح إدارة مجموعة الأجهزة.

معامل الاستخدام وصف
operation مطلوب، سلسلة عملية التشغيل. القيم الصالحة هي create add remove .
notification_key_name مطلوب، سلسلة الاسم المحدد من قبل المستخدم لمجموعة الأجهزة المراد إنشاؤها أو تعديلها.
notification_key مطلوب (باستثناء عملية create ، string المعرف الفريد لمجموعة الأجهزة. يتم إرجاع هذه القيمة في الاستجابة لعملية create الناجحة، وهي مطلوبة لجميع العمليات اللاحقة على مجموعة الأجهزة.
registration_ids مطلوب، مجموعة من السلاسل الرموز المميزة للجهاز لإضافة أو إزالة. إذا قمت بإزالة جميع رموز التسجيل الموجودة من مجموعة أجهزة، فستحذف FCM مجموعة الأجهزة.

إرسال الرسائل إلى مجموعات الأجهزة

لإرسال رسائل إلى مجموعات الأجهزة، استخدم HTTP v1 API. إذا كنت تقوم حاليًا بالإرسال إلى مجموعات الأجهزة باستخدام واجهات برمجة تطبيقات الإرسال القديمة المهملة لـ HTTP أو XMPP، أو أي من الإصدارات الأقدم من Firebase Admin SDK لـ Node.js استنادًا إلى البروتوكولات القديمة، فإننا نوصي بشدة بالانتقال إلى HTTP v1 API في أقرب فرصة. سيتم إيقاف واجهات برمجة تطبيقات الإرسال القديمة وإزالتها في حزيران (يونيو) 2024.

إن إرسال الرسائل إلى مجموعة أجهزة يشبه إلى حد كبير إرسال الرسائل إلى جهاز فردي، وذلك باستخدام نفس الطريقة للسماح بطلبات الإرسال . قم بتعيين حقل token على مفتاح إعلام المجموعة:

استراحة

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

أمر الضفيرة

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