۱. مقدمه
در مقایسه با API قدیمی FCM، API نسخه ۱ FCM HTTP با استفاده از توکنهای دسترسی کوتاهمدت، مدل مجوزدهی امنتری ارائه میدهد. مراحل تولید توکن دسترسی برای API نسخه ۱ FCM به طور قابل توجهی با مراحل API قدیمی متفاوت است.
این آزمایشگاه کد، شما را در فرآیند راهاندازی سمت کلاینت و سرور برای فعالسازی ارسال اعلانهای فوری به یک برنامه اندروید با استفاده از FCM HTTP v1 API راهنمایی میکند. این بخش، مرحله کلیدی تولید اعتبارنامه برای v1 API را برجسته میکند.
اطلاعات بیشتر را میتوانید در آدرس زیر بیابید:
پیشنیازها
- آشنایی اولیه با جاوا و توسعه اندروید
آنچه یاد خواهید گرفت
- مراحل دقیق راهاندازی سمت کلاینت و سرور برای فعال کردن ارسال اعلانهای فوری به برنامه اندروید شما با استفاده از FCM HTTP v1 API
- تولید اعتبارنامه برای HTTP v1 API با استفاده از حسابهای سرویس
- ارسال پیامهای آزمایشی از طریق HTTP v1 API
آنچه نیاز دارید
آخرین نسخه پایدار اندروید استودیو
یکی از دستگاههای زیر:
- یک دستگاه اندروید فیزیکی متصل به کامپیوتر شما
- یک شبیهساز اندروید (به بخش اجرای برنامهها در شبیهساز اندروید مراجعه کنید)
یک محیط توسعه جاوا یا ویرایشگر کد دلخواه شما
۲. پروژه فایربیس و راهاندازی برنامه اندروید
در پایان آزمایشگاه کد، شما قادر خواهید بود با استفاده از Firebase Cloud Messaging به برنامه خود پیام ارسال کنید. قبل از انجام این کار، باید یک پروژه Firebase ایجاد کنید. این آزمایشگاه کد همچنین یک برنامه اندروید حاوی کد نمونه برای ادغام با FCM ارائه میدهد.
تنظیمات پروژه فایربیس
- برای ایجاد پروژه Firebase خود برای این آزمایشگاه کد، «مرحله ۱: ایجاد یک پروژه Firebase » را دنبال کنید.
تنظیمات برنامه اندروید
برنامه اندروید نمونه ارائه شده در این آزمایشگاه کد، از قبل با FCM یکپارچه شده است. پس از شروع، در سرور FCM ثبت نام کرده و در یک تاپیک مشترک میشود. در مراحل بعدی این آزمایشگاه کد، یک پیام تاپیک به تاپیک ارسال میکنید و برنامه شما آن را دریافت خواهد کرد.
- نمونه شروع سریع اندروید فایربیس را دانلود کنید.
- پروژه را از آدرس https://github.com/firebase/quickstart-android/tree/master/messaging به اندروید استودیو ایمپورت کنید.
- برنامه را در کنسول Firebase ثبت کنید. نام برنامه
com.google.firebase.quickstart.fcmاست. این برنامه را با دنبال کردن مراحل موجود در بخش «مرحله 2: ثبت برنامه خود با Firebase » در پروژه Firebase خود ثبت کنید. - برای دانلود
google-services.jsonو افزودن آن به پروژه خود، بخش ۱ از «مرحله ۳: افزودن فایل پیکربندی Firebase » را دنبال کنید. پروژه را بسازید و اجرا کنید.
۳. سرور برنامه را تنظیم کنید
اکنون که برنامه شما راهاندازی شده است، باید یک نمونه کد سمت سرور برای ارسال پیام به برنامه خود با استفاده از API نسخه ۱ FCM دانلود کنید. این کد، اعتبارنامههای API (که در بخش بعدی توضیح داده شده است) را برای تولید یک توکن دسترسی بارگذاری میکند. سپس با استفاده از پیامرسانی موضوعی FCM، پیامی را به برنامه شما ارسال میکند.
- کد سرور اولیه را با دانلود پروژه گیتهاب وارد کنید. پروژه "messaging" یک پروژه جاوا مبتنی بر Gradle با وابستگی به Firebase-admin SDK است که قابلیت ارسال پیام را فراهم میکند.
جزئیات بیشتر در مورد نحوهی کار یک سرور اپلیکیشن با FCM را میتوانید در سند «محیط سرور شما و FCM» بیابید.
۴. اعتبارنامههای نسخه ۱ را دریافت کنید
رابط برنامهنویسی کاربردی FCM HTTP نسخه ۱ از توکنهای دسترسی کوتاهمدت مطابق با مدل امنیتی OAuth2 استفاده میکند. در مقایسه با کلید API استاتیک مورد استفاده در API قدیمی FCM، توکن دسترسی کوتاهمدت کمتر در معرض خطر نشت اعتبارنامه قرار دارد. این بخش مراحل ایجاد یک اعتبارنامه برای تولید توکن دسترسی مورد استفاده در فراخوانی API را شرح میدهد.
- یک حساب کاربری سرویس Firebase تنظیم کنید تا به Firebase Admin SDK اجازه دهید فراخوانیهای APIهای FCM را مجاز کند. تنظیمات پروژه را در کنسول Firebase باز کنید و تب Service accounts را انتخاب کنید. برای دانلود قطعه پیکربندی، روی Generate new private key کلیک کنید.

- در پروژه گیتهاب دانلود شده، نام فایل دانلود شده را به
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());
...
}
- در ترمینال خود به دایرکتوری messaging/project بروید و دستور زیر را تایپ کنید:
./gradlew run -Pmessage=common-message
برای چاپ توکن OAuth2.
اطلاعات بیشتر را میتوانید در «مجاز کردن درخواستهای ارسال» بیابید .
۵. ارسال پیام با REST API
اکنون آماده ارسال پیام از طریق HTTP v1 API هستید. مراحل زیر را دنبال کنید:
- برای افزودن توکن دسترسی به هدر درخواست HTTP:
- توکن را به عنوان مقدار هدر Authorization با فرمت
Authorization: Bearer <access_token>اضافه کنید. - با استفاده از curl یک درخواست HTTP به API نسخه ۱ FCM ارسال کنید:
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 بالا را میتوانید در کد برنامه اندروید ذکر شده در پروژه Firebase و تنظیمات برنامه اندروید پیدا کنید. به طور پیشفرض، مقدار آن "weather" است.
- پس از ارسال موفقیتآمیز پیام، باید اعلانی مشابه تصویر زیر روی صفحه نمایش شما ظاهر شود:

۶. نتیجهگیری
تبریک! شما با موفقیت آزمایشگاه کد را برای موارد زیر تکمیل کردید:
- راهاندازی یک پروژه فایربیس
- ادغام فایربیس با یک برنامه اندروید
- ایجاد اعتبارنامه برای FCM HTTP v1 API
- ارسال پیام به برنامه شما از طریق FCM HTTP v1 API
برای بررسی ویژگیهای پیشرفتهای که FCM ارائه میدهد، منابع زیر مفید هستند: