1- مقدمة
بالمقارنة مع واجهة برمجة التطبيقات القديمة للمراسلة عبر السحابة الإلكترونية من Firebase، توفر واجهة برمجة التطبيقات للإصدار 1 من FCM HTTP نموذج تفويض أكثر أمانًا باستخدام رموز الدخول القصيرة الأجل. تختلف خطوات إنشاء رمز الدخول لواجهة برمجة التطبيقات للإصدار 1 من خدمة FCM بشكل كبير عن خطوات واجهة برمجة التطبيقات القديمة.
يرشدك هذا الدرس التطبيقي خلال عملية الإعداد من جهة العميل والخادم لتفعيل إرسال الإشعارات الفورية إلى تطبيق Android باستخدام واجهة برمجة التطبيقات FCM HTTP v1. ويسلّط الضوء على الخطوة الأساسية لإنشاء بيانات الاعتماد لواجهة برمجة التطبيقات v1 API.
يمكنك الاطّلاع على مزيد من المعلومات على:
- فيديو: لمحة عن "المراسلة عبر السحابة الإلكترونية من Firebase"
- نظرة عامة حول هندسة "المراسلة عبر السحابة الإلكترونية من Firebase"
المتطلبات الأساسية
- فهم أساسيات تطوير Java وAndroid
المعلومات التي ستطّلع عليها
- الخطوات التفصيلية لعملية الإعداد من جهة العميل والخادم لتفعيل إرسال الإشعارات الفورية إلى تطبيق Android باستخدام واجهة برمجة التطبيقات FCM HTTP v1
- إنشاء بيانات الاعتماد لواجهة برمجة التطبيقات HTTP v1 API باستخدام حسابات الخدمة
- إرسال رسائل اختبار من خلال HTTP v1 API
المتطلبات
أحدث إصدار ثابت من "استوديو Android"
أحد الأجهزة التالية:
- يشير هذا المصطلح إلى جهاز Android فعلي متصل بجهاز الكمبيوتر.
- محاكي Android (راجِع تشغيل التطبيقات على محاكي Android)
بيئة تطوير Java أو أداة تعديل الرموز التي تختارها
2- إعداد مشروع على Firebase وتطبيق Android
في نهاية الدرس التطبيقي حول الترميز، ستتمكن من إرسال الرسائل إلى تطبيقك باستخدام "المراسلة عبر السحابة الإلكترونية من Firebase". وعليك إنشاء مشروع على Firebase قبل إجراء ذلك. يوفّر هذا الدرس التطبيقي أيضًا تطبيق Android يحتوي على رمز برمجي يمكن دمجه مع خدمة "المراسلة عبر السحابة الإلكترونية من Firebase".
إعداد مشروع Firebase
- اتّبِع "الخطوة 1: إنشاء مشروع Firebase" لإنشاء مشروعك الخاص في Firebase لهذا الدرس التطبيقي حول الترميز.
إعداد تطبيق Android
سبق أن تم دمج نموذج تطبيق Android المقدَّم في هذا الدرس التطبيقي حول الترميز مع خدمة "المراسلة عبر السحابة الإلكترونية من Firebase". بعد البدء، سيتم التسجيل مع خادم "المراسلة عبر السحابة الإلكترونية من Firebase" والاشتراك في موضوع. في الخطوات اللاحقة لهذا الدرس التطبيقي حول الترميز، سترسل رسالة حول الموضوع إلى التطبيق وسيستلمها تطبيقك.
- نزِّل نموذج البدء السريع لتطبيق Firebase لنظام التشغيل Android.
- استورِد المشروع ضمن https://github.com/firebase/quickstart-android/tree/master/messaging إلى "استوديو Android".
- سجِّل التطبيق في "وحدة تحكُّم Firebase". اسم التطبيق هو "
com.google.firebase.quickstart.fcm
". سجِّل هذا التطبيق في مشروع Firebase باتّباع الخطوات الواردة في "الخطوة 2: تسجيل تطبيقك في Firebase" . - اتّبِع الجزء 1 من "الخطوة 3: إضافة ملف إعداد Firebase" لتنزيل
google-services.json
وإضافته إلى مشروعك. بناء المشروع وإدارته.
3- ضبط إعدادات خادم التطبيق
الآن بعد الانتهاء من إعداد تطبيقك، عليك تنزيل نموذج رمز من جهة الخادم لإرسال الرسائل إلى تطبيقك باستخدام الإصدار 1 من واجهة برمجة التطبيقات لخدمة "المراسلة عبر السحابة الإلكترونية من Firebase". يُحمِّل هذا الرمز بيانات اعتماد واجهة برمجة التطبيقات (الموضّحة في القسم التالي) لإنشاء رمز دخول. بعد ذلك، تُرسِل الرسالة إلى تطبيقك باستخدام المراسلة بشأن موضوع "المراسلة عبر السحابة الإلكترونية من Firebase".
- يمكنك استيراد رمز خادم إجراء التفعيل من خلال تنزيل مشروع جيت هب. و"المراسلة" هو مشروع Java مستند إلى Gradle يعتمد على حزمة SDK firebase-admin، التي توفر وظائف لإرسال الرسائل.
يمكن الاطّلاع على مزيد من التفاصيل حول كيفية عمل خادم التطبيق مع خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" في المستند بيئة الخادم و"المراسلة عبر السحابة الإلكترونية من Firebase".
4. الحصول على بيانات اعتماد الإصدار 1
تستخدم واجهة برمجة التطبيقات FCM HTTP v1 رموز الدخول القصيرة الأجل وفقًا لنموذج الأمان OAuth2. مقارنةً بمفتاح واجهة برمجة التطبيقات الثابت المستخدم في واجهة برمجة التطبيقات القديمة للمراسلة عبر السحابة الإلكترونية من Firebase، يكون رمز الدخول قصير الأجل أقل عرضة لخطر تسرُّب بيانات الاعتماد. يوضح هذا القسم تفاصيل خطوات إنشاء بيانات اعتماد لإنشاء رمز الدخول المستخدم في طلب البيانات من واجهة برمجة التطبيقات.
- عليك إعداد حساب خدمة Firebase للسماح لحزمة تطوير البرامج (SDK) لمشرف Firebase بتفويض الطلبات إلى واجهات برمجة تطبيقات المراسلة عبر السحابة الإلكترونية من Firebase. افتح إعدادات المشروع في وحدة تحكُّم Firebase واختَر علامة التبويب حسابات الخدمة. انقر على إنشاء مفتاح خاص جديد لتنزيل مقتطف الضبط.
- في مشروع GitHub الذي تم تنزيله، أعِد تسمية الملف الذي تم تنزيله إلى
service-account.json
وانسخه إلى مسار المشروعmessaging/
. - تنشئ طريقة
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(); }
- غيِّر الطريقة الرئيسية لإضافة السطر التالي:
public static void main(String[] args) throws IOException { System.out.println(getAccessToken()); ... }
- انتقِل إلى دليل الرسائل أو المشاريع في الوحدة الطرفية واكتب ما يلي:
./gradlew run -Pmessage=common-message
لطباعة رمز OAuth2 المميز.
يمكنك العثور على مزيد من المعلومات في القسم تفويض طلبات الإرسال.
5- إرسال رسالة باستخدام واجهة برمجة تطبيقات REST
أصبحت الآن جاهزًا لإرسال رسالة من خلال HTTP v1 API. اتبع الخطوات التالية:
- لإضافة رمز الدخول إلى عنوان طلب HTTP:
- أضِف الرمز المميّز كقيمة لعنوان التفويض بالتنسيق
Authorization: Bearer <access_token>
. - إرسال طلب HTTP إلى واجهة برمجة التطبيقات الإصدار 1 من FCM باستخدام curl:
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"
تلقائيًا.
- بعد تسليم الرسالة بنجاح، من المفترض أن يظهر لك إشعار منبثق على الشاشة، مشابه للصورة أدناه:
6- الخاتمة
تهانينا لقد أكملت الدرس التطبيقي حول الترميز من أجل:
- إعداد مشروع Firebase
- دمج Firebase مع تطبيق Android
- إنشاء بيانات اعتماد لواجهة FCM HTTP v1 API
- يمكنك إرسال رسالة إلى تطبيقك من خلال واجهة برمجة التطبيقات FCM HTTP v1 API.
للتعرّف على الميزات المتقدّمة التي تقدّمها ميزة "المراسلة عبر السحابة الإلكترونية من Firebase"، يمكنك الاستعانة بالمراجع التالية: