استخدم FCM HTTP v1 API مع رموز الوصول OAuth 2

1 المقدمة

بالمقارنة مع واجهة برمجة تطبيقات FCM القديمة، توفر واجهة برمجة تطبيقات FCM HTTP v1 نموذج ترخيص أكثر أمانًا باستخدام رموز الوصول قصيرة العمر. تختلف خطوات إنشاء رمز الوصول لواجهة برمجة تطبيقات FCM v1 بشكل كبير عن خطوات واجهة برمجة التطبيقات القديمة.

يرشدك هذا الدرس التطبيقي حول التعليمات البرمجية خلال عملية الإعداد من جانب العميل والخادم لتمكين إرسال إشعارات الدفع إلى تطبيق Android باستخدام FCM HTTP v1 API. إنه يسلط الضوء على الخطوة الأساسية لإنشاء بيانات الاعتماد لواجهة برمجة التطبيقات v1.

يمكن العثور على مزيد من المعلومات على:

المتطلبات الأساسية

  • الفهم الأساسي لتطوير Java وAndroid

ما ستتعلمه

  • خطوات تفصيلية للإعداد من جانب العميل والخادم لتمكين إرسال إشعارات الدفع إلى تطبيق Android الخاص بك باستخدام FCM HTTP v1 API
  • إنشاء بيانات الاعتماد لواجهة برمجة تطبيقات HTTP v1 باستخدام حسابات الخدمة
  • إرسال رسائل اختبارية عبر HTTP v1 API

ماذا ستحتاج

أحدث إصدار مستقر من Android Studio

أحد الأجهزة التالية:

بيئة تطوير Java أو محرر الأكواد البرمجية من اختيارك

2. مشروع Firebase وإعداد تطبيق Android

في نهاية مختبر التعليمات البرمجية، ستتمكن من إرسال رسائل إلى تطبيقك باستخدام Firebase Cloud Messaging. قبل القيام بذلك، ستحتاج إلى إنشاء مشروع Firebase. يوفر هذا الدرس التطبيقي حول التعليمات البرمجية أيضًا تطبيق Android يحتوي على نموذج تعليمة برمجية للتكامل مع FCM.

إعداد مشروع Firebase

  • اتبع "الخطوة 1: إنشاء مشروع Firebase " لإنشاء مشروع Firebase الخاص بك لهذا الدرس التطبيقي حول التعليمات البرمجية.

إعداد تطبيق أندرويد

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

3. قم بإعداد خادم التطبيق

الآن بعد أن تم إعداد تطبيقك، ستحتاج إلى تنزيل نموذج تعليمات برمجية من جانب الخادم لإرسال الرسائل إلى تطبيقك باستخدام FCM v1 API. يقوم هذا الرمز بتحميل بيانات اعتماد واجهة برمجة التطبيقات (الموضحة في القسم التالي) لإنشاء رمز وصول. ثم يرسل بعد ذلك رسالة إلى تطبيقك باستخدام رسائل موضوع FCM.

  • قم باستيراد رمز خادم البداية عن طريق تنزيل مشروع Github . مشروع "المراسلة" هو مشروع Java يستند إلى Gradle ويعتمد على Firebase-admin SDK، والذي يوفر وظائف لإرسال الرسائل.

يمكن العثور على مزيد من التفاصيل حول كيفية عمل خادم التطبيق مع FCM في المستند بيئة الخادم الخاص بك وFCM .

4. احصل على بيانات اعتماد الإصدار 1

تستخدم واجهة برمجة تطبيقات FCM HTTP v1 رموز وصول قصيرة العمر وفقًا لنموذج أمان OAuth2. بالمقارنة مع مفتاح واجهة برمجة التطبيقات الثابت المستخدم في واجهة برمجة تطبيقات FCM القديمة، فإن رمز الوصول قصير العمر أقل عرضة لخطر تسرب بيانات الاعتماد. يعرض هذا القسم تفاصيل خطوات إنشاء بيانات اعتماد لإنشاء رمز الوصول المستخدم في استدعاء واجهة برمجة التطبيقات (API).

  1. قم بإعداد حساب خدمة Firebase للسماح لـ Firebase Admin SDK بتفويض المكالمات إلى FCM APIs. افتح إعدادات المشروع في وحدة تحكم Firebase وحدد علامة التبويب حسابات الخدمة . انقر فوق إنشاء مفتاح خاص جديد لتنزيل مقتطف التكوين. لقطة شاشة تم اقتصاصها تسلط الضوء على مقتطف تكوين Admin SDK لمكون حسابات الخدمة في صفحة إعدادات المشروع
  2. في مشروع Github الذي تم تنزيله، أعد تسمية الملف الذي تم تنزيله إلى service-account.json وانسخه إلى مسار messaging/ المشروع.
  3. تقوم طريقة getAccessToken() (الموضحة أدناه) في فئة Messaging.java بإنشاء رمز OAuth2 صالح لمدة ساعة واحدة.
private static String getAccessToken() throws IOException {
  GoogleCredentials googleCredentials = GoogleCredentials.fromStream(new FileInputStream("service-account.json")).createScoped(Arrays.asList(SCOPES));
  googleCredentials.refresh();
  return googleCredentials.getAccessToken().getTokenValue();
}
  1. قم بتغيير الطريقة الرئيسية إلى إضافة السطر التالي:
public static void main(String[] args) throws IOException {
  System.out.println(getAccessToken());
  ...
}
  1. انتقل إلى دليل الرسائل/ المشروع في جهازك الطرفي، واكتب:
./gradlew run -Pmessage=common-message

لطباعة رمز OAuth2.

يمكن العثور على مزيد من المعلومات في تفويض إرسال الطلبات .

5. أرسل رسالة باستخدام REST API

أنت الآن جاهز لإرسال رسالة عبر HTTP v1 API. اتبع الخطوات التالية:

  • لإضافة رمز الوصول إلى رأس طلب HTTP:
  • أضف الرمز المميز كقيمة رأس التفويض بالتنسيق Authorization: Bearer <access_token>
  • قم بإجراء طلب HTTP إلى FCM v1 API باستخدام الضفيرة:
curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $OAuth2_token" -H "X-GFE-SSL: yes" -d  "{\"message\": {\"topic\": \"$topic_name\", \"notification\": {\"title\": \"breaking news\", \"body\": \"This is breaking news\"}}}" https://fcm.googleapis.com/v1/projects/[PROJECT_NAME]/messages:send

يمكن العثور على $topic_name أعلاه في كود تطبيق Android المذكور في مشروع Firebase وإعداد تطبيق Android. بشكل افتراضي هو "weather" .

  • بعد تسليم الرسالة بنجاح، من المفترض أن ترى إشعارًا منبثقًا على شاشتك، مشابهًا للصورة أدناه:

54ae84ece22202cd.png

6. الاستنتاج

تهانينا! لقد أكملت الدرس التطبيقي حول التعليمات البرمجية بنجاح من أجل:

  • قم بإعداد مشروع Firebase
  • دمج Firebase مع تطبيق Android
  • قم بإنشاء بيانات اعتماد لواجهة برمجة تطبيقات FCM HTTP v1
  • أرسل رسالة إلى تطبيقك من خلال FCM HTTP v1 API

لاستكشاف الميزات المتقدمة التي تقدمها FCM، تعتبر المراجع التالية مفيدة: