أرسل رسائل إلى مجموعات الأجهزة على 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 السلسلة معرّف فريد لمجموعة الأجهزة. يتم إرجاع هذه القيمة في الاستجابة لعملية 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

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