بروتوكول HTTP للمراسلة عبر السحابة الإلكترونية من Firebase

يوفر هذا المستند مرجعًا لبنية HTTP المستخدمة لتمرير رسائل من خادم تطبيقك إلى تطبيقات العميل عبر خدمة "المراسلة عبر السحابة الإلكترونية من Firebase".

عند استخدام بروتوكول HTTP القديم، يجب أن يوجّه خادم التطبيق جميع طلبات HTTP إلى نقطة النهاية هذه:

https://fcm.googleapis.com/fcm/send

تندرج المعلمات والخيارات المتاحة ضمن الفئات الواسعة التالية:

بنية الرسالة بعد استلامها

يقدم هذا القسم بنية إرسال الرسائل التي يتم استلامها وتفسيرها. استجابات HTTP من "المراسلة عبر السحابة الإلكترونية من Firebase".

رسائل HTTP المتسلسلة بتنسيق JSON

يسرد الجدول التالي الأهداف والخيارات وحمولة رسائل HTTP JSON.

الجدول 1. الأهداف والخيارات وحمولة رسائل HTTP النهائية (JSON).

المعلمة الاستخدام الوصف
الأهداف
to اختياري، سلسلة

تحدد هذه المعلمة مُستلِم الرسالة.

وقد تكون القيمة رمزًا مميزًا لتسجيل الجهاز، أو رمز عنوان URL الخاص بمجموعة أجهزة أو مفتاح إشعار أو موضوع واحد (يبدأ بـ /topics/). لإرسالها إلى مواضيع متعددة، استخدم مَعلمة condition.

registration_ids
اختياري، مصفوفة من السلاسل

تحدد هذه المعلمة مستلم رسالة البث المتعدد يتم إرساله إلى أكثر من رمز مميز واحد للتسجيل.

يجب أن تكون القيمة مصفوفة من رموز التسجيل المميَّزة لإرسال الرمز رسالة بث متعدد. يجب أن يحتوي الصفيف على عنصر واحد على الأقل و1,000 كحد أقصى الرموز المميزة للتسجيل. ولإرسال رسالة إلى جهاز واحد، استخدم مَعلمة to.

لا يُسمح برسائل البث المتعدد إلا باستخدام تنسيق HTTP JSON.

condition اختياري، سلسلة

تحدد هذه المعلمة تعبيرًا منطقيًا للشروط التي لتحديد هدف الرسالة.

الشرط المتوافق: الموضوع، بالتنسيق "'yourTopic" في المواضيع". هذا النمط قيمة غير حساسة لحالة الأحرف.

عوامل التشغيل المتوافقة: && و|| اثنان كحد أقصى المشغلات لكل رسالة موضوع مدعومة.

notification_key
متوقّفة نهائيًا
اختياري، سلسلة

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

الخيارات
collapse_key اختياري، سلسلة

تحدد هذه المعلمة مجموعة من الرسائل (على سبيل المثال، مع collapse_key: "Updates Available") التي يمكن تصغيرها، بحيث لا آخر رسالة يتم إرسالها عند استئناف التسليم. الهدف من ذلك هو تجنُّب إرسال الرسائل أيضًا العديد من الرسائل نفسها عندما يعود الجهاز متصلاً بالإنترنت أو يصبح نشطًا.

يُرجى العِلم أنّه ليس هناك ما يضمن ترتيب إرسال الرسائل.

ملاحظة: يُسمح باستخدام 4 مفاتيح تصغير مختلفة كحد أقصى في أي وقت. هذا يعني أنّ يمكن لميزة "المراسلة عبر السحابة الإلكترونية من Firebase" تخزين 4 رسائل مختلفة في الوقت نفسه لكل تطبيق عميل. إذا كنت تجاوز هذا الرقم، فليس هناك ما يضمن الاحتفاظ بالمفاتيح الأربعة للتصغير التي تحتفظ بها خدمة "المراسلة عبر السحابة الإلكترونية من Firebase".

priority اختياري، سلسلة

لضبط أولوية الرسالة. القيم الصالحة هي "عادية" و"مرتفع". على منصات Apple تتوافق هذه مع الأولويات 5 و10 لأسماء نقاط الوصول.

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

عند إرسال رسالة ذات أولوية عالية، يتم إرسالها على الفور، ويبدأ التطبيق عرض إشعار.

content_available اختياري، منطقية

على أنظمة Apple الأساسية، استخدِم هذا الحقل لتمثيل content-available في حمولة أسماء نقاط الوصول (APN). عندما يتم إرسال إشعار أو رسالة ويتم ضبط هذا الإعداد على true، يتم تنشيط تطبيق العميل غير النشط، ويتم إرسال الرسالة من خلال أسماء نقاط الوصول (APN) كإشعار صامت. وليس من خلال خدمة "المراسلة عبر السحابة الإلكترونية من Firebase". يُرجى العلم أنّ الإشعارات الصامتة في أسماء نقاط الوصول (APN) ليست مضمونًا سيتم تسليمه، ويمكن أن تعتمد على عوامل مثل تشغيل المستخدم للطاقة المنخفضة الوضع، وفرض إنهاء التطبيق، وما إلى ذلك. على نظام Android، تعمل رسائل البيانات على تنشيط التطبيق تلقائيًا. مشغَّلة متصفّح Chrome، غير متاح حاليًا.

mutable_content اختياري، قيمة JSON منطقية

على أنظمة Apple الأساسية، استخدم هذا الحقل لتمثيل mutable-content في حمولة أسماء نقاط الوصول (APN). عندما يتم إرسال إشعار ويتم ضبط هذا الإعداد إلى true، يمكن تعديل محتوى الإشعار قبل عرضه، باستخدام إضافة تطبيق "خدمة الإشعارات". وسيتم تجاهل هذه المَعلمة لنظام التشغيل Android وعلى الويب.

time_to_live اختياري، رقم

تحدد هذه المعلمة المدة (بالثواني) التي يجب الاحتفاظ بالرسالة في مساحة تخزين FCM. إذا كان الجهاز غير متصل بالإنترنت. الحد الأقصى لوقت توفّر الدعم هو 4 أسابيع، والقيمة التلقائية هي 4 أسابيع. لمزيد من المعلومات، يُرجى الاطّلاع على ضبط عمر الرسالة.

restricted_package_
name
(نظام التشغيل Android فقط)
اختياري، سلسلة تحدد هذه المعلمة اسم حزمة التطبيق حيث يجب أن تتطابق رموز التسجيل المميَّزة من أجل تلقّي الرسالة.
dry_run اختياري، منطقية

وعند ضبط هذه المَعلمة على true، تسمح للمطوّرين باختبار الطلب دون إرسال رسالة بالفعل.

ستكون القيمة التلقائية false.

الحمولة
data عنصر اختياري

تحدد هذه المعلمة أزواج المفتاح/القيمة المخصصة لحمولة الرسالة.

مثلاً، باستخدام "data:{"score":"3x1"}:"

على أنظمة Apple الأساسية، إذا تم إرسال الرسالة عبر أسماء نقاط الوصول (APN)، فإنّها تمثِّل حقول البيانات المخصّصة. إذا تم إرسالها عبر ميزة "المراسلة عبر السحابة الإلكترونية من Firebase"، سيتم تمثيلها كقاموس للقيمة الرئيسية في AppDelegate application:didReceiveRemoteNotification:.

على Android، سيؤدي ذلك إلى إضافة intent إضافية باسم score مع قيمة السلسلة 3x1.

يجب ألا يكون المفتاح كلمة محجوزة ("from" أو "message_type" أو أي كلمة تبدأ بـ) "google" أو "gcm"). لا تستخدم أيًا من الكلمات الواردة في هذا الجدول (مثل collapse_key).

ويُنصَح باستخدام القيم في أنواع السلاسل. يجب تحويل القيم في كائنات أو أنواع بيانات أخرى ليست سلسلة (مثل الأعداد الصحيحة أو القيم المنطقية) إلى سلسلة.

notification عنصر اختياري تحدّد هذه المعلمة أزواج المفتاح والقيمة المحدّدة مسبقًا ومرئية للمستخدم حمولة الإشعارات. يمكنك الاطّلاع على إمكانية استخدام حمولة الإشعارات لمعرفة التفاصيل. لمزيد من المعلومات حول خيارات رسالة الإشعار ورسائل البيانات، الرؤية أنواع الرسائل: في حال توفُّر حمولة بيانات الإشعارات، أو تم ضبط الخيار content_available على true لرسالة إلى جهاز Apple. جهاز، يتم إرسال الرسالة من خلال أسماء نقاط الوصول، وإلا يتم إرسالها من خلال المراسلة عبر السحابة الإلكترونية من Firebase

إتاحة حمولة الإشعارات

تسرد الجداول التالية البيانات المحددة مسبقًا المتاحة لإنشاء رسائل إشعارات لنظامي التشغيل iOS وAndroid.

الجدول 2 أ. نظام التشغيل iOS - مفاتيح رسائل الإشعارات

المعلمة الاستخدام الوصف
title اختياري، سلسلة

عنوان الإشعار.

لا يظهر هذا الحقل على الهواتف والأجهزة اللوحية.

body اختياري، سلسلة

النص الأساسي للإشعار.

sound اختياري، سلسلة

الصوت الذي سيتم تشغيله عندما يتلقّى الجهاز الإشعار.

سلسلة تحدّد الملفات الصوتية في الحزمة الرئيسية لتطبيق العميل أو في مجلد واحد (Library/Sounds) لحاوية بيانات التطبيق يمكنك الاطّلاع على مكتبة مطوّري برامج iOS لمزيد من المعلومات

badge اختياري، سلسلة

قيمة الشارة التي تظهر على رمز تطبيق الشاشة الرئيسية.

وفي حال عدم تحديد هذه السمة، لن تتغيّر الشارة.

وإذا تم ضبط قيمة الشارة على 0، ستتم إزالة الشارة.

click_action اختياري، سلسلة

يشير ذلك المصطلح إلى الإجراء المرتبط بالمستخدم الذي ينقر على الإشعار.

يتطابق مع القيمة category في حمولة أسماء نقاط الوصول (APN).

subtitle اختياري، سلسلة

العنوان الفرعي للإشعار.

body_loc_key اختياري، سلسلة

يشير هذا المصطلح إلى مفتاح السلسلة النصية في موارد السلسلة الخاصة بالتطبيق. ترجمة النص الأساسي إلى أقلمة المستخدم الحالية.

يتطابق مع القيمة loc-key في حمولة أسماء نقاط الوصول (APN).

عرض مرجع مفتاح حمولة البيانات أقلمة محتوى "إشعاراتك عن بُعد" للاطّلاع على مزيد من المعلومات المعلومات.

body_loc_args اختياري، مصفوفة JSON كسلسلة

قيم سلسلة متغيرة لاستخدامها بدلاً من محددات التنسيق في body_loc_key لاستخدامه لترجمة النص الأساسي إلى الأقلمة الحالية للمستخدم.

يتطابق مع القيمة loc-args في حمولة أسماء نقاط الوصول (APN).

عرض مرجع مفتاح حمولة البيانات أقلمة محتوى "إشعاراتك عن بُعد" للاطّلاع على مزيد من المعلومات المعلومات.

title_loc_key اختياري، سلسلة

مفتاح سلسلة العنوان في موارد سلسلة التطبيق التي يمكن استخدامها ترجمة نص العنوان بما يناسب الأقلمة الحالية للمستخدم.

يتطابق مع القيمة title-loc-key في حمولة أسماء نقاط الوصول (APN).

عرض مرجع مفتاح حمولة البيانات أقلمة محتوى "إشعاراتك عن بُعد" للاطّلاع على مزيد من المعلومات المعلومات.

title_loc_args اختياري، مصفوفة JSON كسلسلة

قيم سلسلة متغيرة لاستخدامها بدلاً من محددات التنسيق في title_loc_key للاستخدام لترجمة نص العنوان إلى النص الأقلمة الحالية للمستخدم.

يتطابق مع القيمة title-loc-args في حمولة أسماء نقاط الوصول (APN).

عرض مرجع مفتاح حمولة البيانات أقلمة محتوى "إشعاراتك عن بُعد" للاطّلاع على مزيد من المعلومات المعلومات.

الجدول 2 (ب). Android: مفاتيح تلقّي الإشعارات

المعلمة الاستخدام الوصف
title اختياري، سلسلة

عنوان الإشعار.

body اختياري، سلسلة

النص الأساسي للإشعار.

android_channel_id اختياري، سلسلة

صفحة معرّف قناة الإشعار (جديد في Android O).

يجب أن ينشئ التطبيق قناة باستخدام معرّف القناة هذا قبل ظهور أي إشعار يتضمّن معرّف القناة هذا. المستلمة.

إذا لم يتم إرسال معرّف القناة هذا في الطلب، أو إذا لم يتم إرسال معرّف القناة الذي تم تقديمه بعد الذي أنشأه التطبيق، تستخدم خدمة FCM معرّف القناة المحدّد في بيان التطبيق.

icon اختياري، سلسلة

رمز الإشعار.

يتم ضبط رمز الإشعار على myicon للمورد القابل للرسم. myicon إذا لم ترسل هذا المفتاح في الطلب، تعرض خدمة FCM رمز مشغّل التطبيقات المحدّد في بيان التطبيق.

sound اختياري، سلسلة

الصوت الذي سيتم تشغيله عندما يتلقّى الجهاز الإشعار.

متوافق مع "default" أو اسم الملف الخاص بمصدر صوتي مجمعة في التطبيق. يجب أن تتوفّر الملفات الصوتية في /res/raw/.

tag اختياري، سلسلة

المعرّف المستخدَم لاستبدال الإشعارات الحالية في الإشعار الدرج.

في حال عدم تحديد قيمة، سينشئ كل طلب إشعارًا جديدًا.

في حال تحديد هذه السمة وكان هناك إشعار بالعلامة نفسها المعروض، يحل الإشعار الجديد محل الإشعار الحالي في درج الإشعارات.

color اختياري، سلسلة

لون رمز الإشعار، والذي يتم التعبير عنه بالتنسيق #rrggbb.

click_action اختياري، سلسلة

يشير ذلك المصطلح إلى الإجراء المرتبط بالمستخدم الذي ينقر على الإشعار.

وفي حالة تحديد نشاط معيّن، يتم تشغيله بفلتر أهداف مطابق عند ينقر المستخدم على الإشعار.

body_loc_key اختياري، سلسلة

يشير هذا المصطلح إلى مفتاح السلسلة النصية في موارد السلسلة الخاصة بالتطبيق. ترجمة النص الأساسي إلى أقلمة المستخدم الحالية.

عرض موارد السلسلة لمزيد من المعلومات.

body_loc_args اختياري، مصفوفة JSON كسلسلة

قيم سلسلة متغيرة لاستخدامها بدلاً من محددات التنسيق في body_loc_key لاستخدامه لترجمة النص الأساسي إلى الأقلمة الحالية للمستخدم.

عرض التنسيق والنمط للاطّلاع على مزيد من المعلومات

title_loc_key اختياري، سلسلة

مفتاح سلسلة العنوان في موارد سلسلة التطبيق التي يمكن استخدامها ترجمة نص العنوان بما يناسب الأقلمة الحالية للمستخدم.

عرض موارد السلسلة لمزيد من المعلومات.

title_loc_args اختياري، مصفوفة JSON كسلسلة

قيم سلسلة متغيرة لاستخدامها بدلاً من محددات التنسيق في title_loc_key للاستخدام لترجمة نص العنوان إلى النص الأقلمة الحالية للمستخدم.

عرض التنسيق والنمط للاطّلاع على مزيد من المعلومات

الجدول 2 (ج). الويب (JavaScript) - مفاتيح رسائل الإشعارات

المعلمة الاستخدام الوصف
title اختياري، سلسلة

عنوان الإشعار.

body اختياري، سلسلة

النص الأساسي للإشعار.

icon اختياري، سلسلة

عنوان URL الذي سيتم استخدامه لرمز الإشعار.

click_action اختياري، سلسلة

يشير ذلك المصطلح إلى الإجراء المرتبط بالمستخدم الذي ينقر على الإشعار.

يجب استخدام HTTPS لجميع قيم عناوين URL.

رسائل HTTP المتحوّلة سريعًا (نص عادي)

يسرد الجدول التالي بناء الجملة للأهداف والخيارات والحمولة في التنسيق العادي رسائل HTTP لانتقال النص لاحقًا

الجدول 3. الأهداف والخيارات والحمولة لرسائل HTTP النصية العادية التي يتم إرسالها تلقائيًا

المعلمة الاستخدام الوصف
الأهداف
registration_id مطلوب، سلسلة

تحدِّد هذه المَعلمة تطبيقات العميل (الرموز المميّزة للتسجيل) التي تتلقّى الرسالة.

يُسمح بإرسال الرسائل التي تتضمّن أكثر من رمز مميّز واحد للتسجيل) باستخدام تنسيق HTTP JSON فقط.

الخيارات
collapse_key اختياري، سلسلة راجِع الجدول 1 للحصول على التفاصيل.
time_to_live اختياري، رقم راجِع الجدول 1 للحصول على التفاصيل.
restricted_package_name اختياري، سلسلة راجِع الجدول 1 للحصول على التفاصيل.
dry_run اختياري، منطقية راجِع الجدول 1 للحصول على التفاصيل.
الحمولة
data.<key> اختياري، سلسلة

تحدد هذه المعلمة أزواج المفتاح/القيمة لحمولة الرسالة. ليس هناك حد لعدد معلَمات المفتاح والقيمة، ولكن هناك حد أقصى لإجمالي حجم الرسالة يبلغ 4096 بايت.

على سبيل المثال، في نظام Android، سيؤدي "data.score"."3x1" إلى إضافة intent إضافية. باسم score مع قيمة السلسلة 3x1.

يجب ألا يكون المفتاح كلمة محجوزة ("from" أو "message_type" أو أي كلمة تبدأ بـ) "google" أو "gcm"). لا تستخدم أيًا من الكلمات الواردة في هذا الجدول (مثل collapse_key).

تفسير الرد على رسالة استلام الطلب

يجب أن يقيّم خادم التطبيق كلاً من عنوان استجابة الرسالة ونصها لتفسير رد الرسالة المرسلة من ميزة "المراسلة عبر السحابة الإلكترونية من Firebase". يعرض الجدول التالي ويصف الردود المحتملة.

الجدول 4. عنوان استجابة رسالة HTTP المنتقل إليها لاحقًا

الردّ الوصف
200 تمت معالجة الرسالة بنجاح. سيحتوي نص الاستجابة على المزيد تفاصيل حول حالة الرسالة، ولكن سيعتمد تنسيقها على ما إذا كان الطلب كانت JSON أو نصًا عاديًا. الاطّلاع على الجدول 5 لمزيد من التفاصيل.
400 لا ينطبق هذا الإعداد إلا على طلبات JSON. يشير إلى تعذّر تحليل الطلب بتنسيق JSON، أو أنّه يحتوي على قيمة غير صالحة (على سبيل المثال، تمرير سلسلة حيث كان الرقم متوقعًا). المطابقة التامة يتم وصف سبب الفشل في الرد ويجب معالجة المشكلة قبل أن تتمكن من إعادة محاولة الطلب.
401 حدث خطأ أثناء مصادقة حساب المُرسِل.
5xx تشير الأخطاء التي تقع في النطاق 500-599 (مثل 500 أو 503) إلى وجود حدوث خطأ داخلي في الواجهة الخلفية لخدمة "المراسلة عبر السحابة الإلكترونية من Firebase" أثناء محاولة معالجة الطلب، أو عدم إتاحة الخادم مؤقتًا (بسبب المهلات مثلاً). المُرسِل يجب إعادة المحاولة لاحقًا، مع الالتزام بأي عنوان Retry-After تم تضمينه في الاستجابة. يجب أن تنفذ خوادم التطبيقات وظيفة الرقود الأسي الثنائي.

يسرد الجدول التالي الحقول في النص الأساسي للرد على الرسالة. (JSON)

الجدول 5: نص استجابة رسالة HTTP المتسلسلة (JSON)

المعلمة الاستخدام الوصف
multicast_id مطلوب، رقم المعرّف الفريد (الرقم) الذي يعرّف رسالة البث المتعدد
success مطلوب، رقم عدد الرسائل التي تمت معالجتها بدون خطأ.
failure مطلوب، رقم عدد الرسائل التي تعذَّرت معالجتها.
results مطلوب، مصفوفة الكائنات مصفوفة من العناصر التي تمثّل حالة الرسائل التي تمت معالجتها. تشير رسالة الأشكال البيانية يتم سرد العناصر بنفس ترتيب الطلب (أي لكل عملية تسجيل ID في الطلب، يتم إدراج نتيجته في الفهرس نفسه في الاستجابة).
  • message_id: سلسلة تحدّد معرّفًا فريدًا لكل عملية تمت معالجتها بنجاح .
  • error: سلسلة تحدد الخطأ الذي حدث عند معالجة للمستلم. يمكن العثور على القيم المحتملة في الجدول 9.

الجدول 6. نص استجابة HTTP لرسالة الموضوع (JSON).

المعلمة الاستخدام الوصف
message_id اختياري، رقم معرّف رسالة الموضوع عند استلام خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" الطلب بنجاح ستحاول تسليمه إلى كل الأجهزة المشتركة.
error اختياري، سلسلة حدث خطأ أثناء معالجة الرسالة. يمكن العثور على القيم المحتملة في الجدول 9.

الجدول 7: استجابة ناجحة لنص استجابة رسالة HTTP المنتقل إليها (نص عادي)

المعلمة الاستخدام الوصف
id مطلوب، سلسلة تحدّد هذه المَعلمة المعرّف الفريد للرسالة في "المراسلة عبر السحابة الإلكترونية من Firebase" الذي تمت معالجته بنجاح.
registration_id اختياري، سلسلة تُحدِّد هذه المَعلمة الرمز المميّز للتسجيل لتطبيق العميل الذي أُرسِلت إليه الرسالة. ومعالجتها وإرسالها إليها.

الجدول 8. استجابة خطأ لنص استجابة رسالة HTTP المتدفقة (نص عادي).

المعلمة الاستخدام الوصف
Error مطلوب، سلسلة تُحدِّد هذه المَعلمة قيمة الخطأ أثناء معالجة الرسالة للمستلِم. يُرجى الاطّلاع على الجدول 9 للحصول على التفاصيل.

رموز الاستجابة للأخطاء التي تحدث في مرحلة متأخرة من الوقت

يسرد الجدول التالي رموز الاستجابة للأخطاء للرسائل التي تلي استلام البريد.

الجدول 9. رموز الاستجابة لأخطاء رسائل البريد المتأخّر.

خطأ رمز HTTP الإجراء المقترَح
الرمز المميّز للتسجيل غير متوفّر 200 + الخطأ:التسجيل غير موجود تحقق من أن الطلب يحتوي على رمز مميز للتسجيل (في registration_id في رسالة نصية عادية، أو في to أو registration_ids بتنسيق JSON).
الرمز المميّز للتسجيل غير صالح 200 + خطأ:تسجيل غير صالح تحقَّق من تنسيق الرمز المميّز للتسجيل الذي تمرِّره إلى الخادم. التأكد من ذلك تتطابق مع الرمز المميّز للتسجيل الذي يتلقّاه تطبيق العميل من التسجيل في Firebase الإشعارات. لا تقتطع أحرفًا أو تدرجها.
جهاز غير مسجَّل 200 + الخطأ:غير مسجَّل قد يصبح الرمز المميّز الحالي للتسجيل غير صالح في عدد من السيناريوهات، بما في ذلك:
  • إذا ألغى تطبيق العميل التسجيل في خدمة "المراسلة عبر السحابة الإلكترونية من Firebase":
  • إذا تم إلغاء تسجيل تطبيق العميل تلقائيًا، وقد يحدث ذلك إذا إلغاء تثبيت المستخدم للتطبيق. على سبيل المثال، في نظام iOS، إذا كانت أسماء نقاط الوصول (APN) أبلغت "خدمة الملاحظات" أنّ الرمز المميّز لأسماء نقاط الوصول (APN) غير صالح.
  • في حال انتهاء صلاحية الرمز المميّز للتسجيل (على سبيل المثال، قد تقرّر Google إعادة تحميل الصفحة) أو الرمز المميز لأسماء نقاط الوصول (APN) لأجهزة iOS).
  • إذا تم تحديث تطبيق العميل، ولكن لم يتم ضبط الإصدار الجديد على تلقّي الرسائل.
في جميع هذه الحالات، عليك إزالة الرمز المميّز للتسجيل من التطبيق. الخادم والتوقف عن استخدامه لإرسال الرسائل.
اسم الحزمة غير صالح 200 أكثر من الخطأ:UnknownPackageName تأكَّد من أنّ الرسالة موجَّهة إلى رمز مميَّز للتسجيل يكون اسم الحزمة الخاص به. تتطابق مع القيمة التي تم تمريرها في الطلب.
خطأ في المصادقة 401 تعذّرت مصادقة حساب المُرسِل المستخدَم لإرسال رسالة. الأسباب المحتمَلة هي:
.
  • عنوان التفويض مفقود أو يحتوي على بنية غير صالحة في طلب HTTP.
  • مشروع Firebase الذي ينتمي إليه مفتاح الخادم المحدّد غير صحيح.
  • مفاتيح الخادم القديمة فقط: نشأ الطلب من خادم غير مُدرَج في القائمة البيضاء في عناوين IP لمفاتيح الخادم.
تأكَّد من أنّ الرمز المميّز الذي ترسله داخل عنوان المصادقة هو مفتاح الخادم الصحيح المرتبط بمشروعك. عرض التحقق من صلاحية مفتاح خادم لمزيد من التفاصيل. إذا كنت تستخدم مفتاح خادم قديمًا، ننصحك بالترقية إلى مفتاح جديد لا يفرض أي قيود على عنوان IP. عرض نقل مفاتيح الخادم القديم
المُرسِل غير متطابق 200 + الخطأ:MismatchSenderId ويرتبط الرمز المميّز للتسجيل بمجموعة معيّنة من المُرسِلين. عند تسجيل أحد تطبيقات العميل في خدمة "المراسلة عبر السحابة الإلكترونية من Firebase"، يجب تحديد المرسِلين المسموح لهم بإرسال الرسائل. يجب عليك استخدام واحد معرّفات المرسلين هذه عند إرسال الرسائل إلى تطبيق العميل. إذا قمت بالتبديل إلى فلن تعمل رموز التسجيل المميزة الحالية.
ملف JSON غير صالح 400 تأكَّد من أنّ رسالة JSON منسّقة بشكلٍ سليم وتحتوي على حقول صالحة. (على سبيل المثال، التأكد من تمرير نوع البيانات الصحيح).
مَعلمات غير صالحة 400 + الخطأ:غير صالح تحقَّق من أن المَعلمات المقدّمة لها الاسم والنوع الصحيحَين.
الرسالة كبيرة جدًا. 200 + خطأ:MessageTooBig تحقق من أن الحجم الإجمالي لبيانات الحمولة المضمنة في الرسالة عدم تجاوز حدود "المراسلة عبر السحابة الإلكترونية من Firebase": 4096 بايت لمعظم الرسائل، أو 2048 بايت في الحالة من الرسائل إلى المواضيع ويتضمن ذلك كلاً من المفاتيح والقيم.
مفتاح بيانات غير صالح 200 + الخطأ:
مفتاح البيانات غير صالح.
تحقَّق من أنّ بيانات الحمولة لا تحتوي على أي مفتاح (مثل from، أو gcm أو أي قيمة مسبوقة بـ google) وتستخدمها خدمة FCM داخليًا. لاحظ أن بعض الكلمات (مثل collapse_key) كما تستخدمها خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" ولكن يُسمح باستخدامها في الحمولة، حيث في حال تم إلغاء قيمة الحمولة بواسطة قيمة FCM.
مدة البقاء غير صالحة 200 + خطأ:غير صالحTtl تأكَّد من أنّ القيمة المستخدَمة في time_to_live هي عدد صحيح يمثّل المدة بالثواني بين 0 و2419200 (4 أسابيع).
انتهت المهلة 5xx أو 200 + الخطأ:غير متاح

لم يتمكّن الخادم من معالجة الطلب في الوقت المناسب. يُرجى إعادة محاولة الطلب نفسه، ولكن يجب:

  • عليك اتّباع عنوان Retry-After إذا تم تضمينه في الردّ من خادم اتصال المراسلة عبر السحابة الإلكترونية من Firebase.
  • تنفيذ الرقود الأسي في آلية إعادة المحاولة. (مثلاً إذا انتظرت ثانية واحدة قبل إعادة المحاولة الأولى، انتظر ثانيتَين على الأقل قبل المحاولة التالية، ثم انتظِر لمدة 4 ثوانٍ وما إلى ذلك). في حال إرسال رسائل متعددة، يمكنك تأخير كل رسالة على حدة بمبلغ عشوائي إضافي. لتفادي إصدار طلب جديد لجميع الرسائل في الوقت نفسه.

قد يُدرج المُرسِلون الذين يسببون مشاكل في قائمة سوداء.

خطأ في الخادم الداخلي 500 أو 200 + خطأ:internalServerError حدث خطأ في الخادم أثناء محاولة معالجة الطلب. يمكنك إعادة المحاولة تقديم الطلب نفسه وفقًا للمتطلبات المذكورة في "المهلة" (انظر الصف أعلاه). إذا حدث الخطأ استمرار المشكلة، يُرجى التواصل مع فريق دعم Firebase.
تم تجاوز معدّل الرسائل على الجهاز 200 + الخطأ:
معدّل الرسائل (DeviceMessageRate)
تم التجاوز

معدّل الرسائل إلى جهاز معيّن مرتفع جدًا. إذا كان هناك تطبيق Apple ترسل الرسائل بمعدل يتجاوز حدود أسماء نقاط الوصول (APNs)، قد تظهر رسالة الخطأ هذه

تقليل عدد الرسائل المرسلة إلى هذا الجهاز استخدام الرقود exponential إعادة محاولة الإرسال.

تم تجاوز معدل رسائل الموضوعات 200 + الخطأ:
معدل الرسائل
تم التجاوز
معدل الرسائل الموجهة إلى المشتركين في موضوع معين مرتفع جدًا. تقليل عدد الرسائل المرسلة حول هذا الموضوع استخدام الرقود exponential إعادة محاولة الإرسال.
بيانات اعتماد أسماء نقاط الوصول غير صالحة. 200 + الخطأ:
بيانات اعتماد Apns غير صالحة
تعذّر إرسال رسالة موجَّهة إلى جهاز Apple بسبب أسماء نقاط الوصول (APN) المطلوبة. لم يتم تحميل مفتاح المصادقة أو انتهت صلاحيته. التحقق من صحة تطورك وبيانات اعتماد الإنتاج.

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

يسرد الجدول التالي المفاتيح لإنشاء مجموعات الأجهزة وإضافة وإزالة الأعضاء. لمزيد من المعلومات، يُرجى الاطّلاع على لـ YouTube على منصتك iOS+ أو Android

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

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