1. مقدمه
در مقایسه با API قدیمی FCM، API FCM HTTP v1 با استفاده از توکن های دسترسی کوتاه مدت، مدل مجوز امن تری را ارائه می دهد. مراحل تولید نشانه دسترسی برای API FCM v1 به طور قابل توجهی با مراحل مربوط به API قدیمی متفاوت است.
این لبه کد شما را در فرآیند راهاندازی سمت سرویس گیرنده و سرور راهنمایی میکند تا با استفاده از API FCM HTTP v1، اعلانهای فشار را به یک برنامه Android ارسال کنید. این مرحله کلیدی تولید اعتبار برای API v1 را برجسته می کند.
اطلاعات بیشتر را می توان در آدرس زیر یافت:
پیش نیازها
- درک اولیه جاوا و توسعه اندروید
چیزی که یاد خواهید گرفت
- مراحل دقیق راهاندازی سمت کلاینت و سرور برای فعال کردن ارسال اعلانهای فشار به برنامه Android شما با استفاده از FCM HTTP v1 API
- تولید اعتبار برای HTTP v1 API با استفاده از حسابهای سرویس
- ارسال پیام های آزمایشی از طریق API HTTP v1
آنچه شما نیاز دارید
آخرین نسخه پایدار اندروید استودیو
یکی از دستگاه های زیر:
- یک دستگاه اندروید فیزیکی متصل به رایانه شما
- یک شبیه ساز اندروید ( به اجرای برنامه ها در شبیه ساز اندروید مراجعه کنید)
یک محیط توسعه جاوا یا ویرایشگر کد به انتخاب شما
2. پروژه Firebase و راه اندازی برنامه اندروید
در انتهای آزمایشگاه کد، میتوانید با استفاده از Firebase Cloud Messaging، پیامهایی را به برنامه خود ارسال کنید. قبل از انجام این کار، باید یک پروژه Firebase ایجاد کنید. این کد لبه همچنین یک برنامه اندروید حاوی کد نمونه برای ادغام با FCM ارائه می دهد.
راه اندازی پروژه Firebase
- برای ایجاد پروژه Firebase خود برای این Codelab، «مرحله 1: ایجاد یک پروژه Firebase » را دنبال کنید.
راه اندازی برنامه اندروید
نمونه برنامه اندروید ارائه شده در این کد لبه قبلاً با FCM یکپارچه شده است. پس از شروع، در سرور FCM ثبت می شود و در یک موضوع مشترک می شود. در مراحل بعدی این نرم افزار کد، یک پیام موضوعی به موضوع ارسال می کنید و برنامه شما آن را دریافت می کند.
- نمونه شروع سریع اندروید Firebase را دانلود کنید.
- پروژه را تحت https://github.com/firebase/quickstart-android/tree/master/messaging به Android Studio وارد کنید.
- برنامه را در Firebase Console ثبت کنید. نام برنامه
com.google.firebase.quickstart.fcm
است. با دنبال کردن مراحل در بخش «مرحله 2: ثبت برنامه خود در Firebase »، این برنامه را در پروژه Firebase خود ثبت کنید. - برای دانلود
google-services.json
و اضافه کردن آن به پروژه، قسمت 1 «مرحله 3: افزودن یک فایل پیکربندی Firebase » را دنبال کنید. پروژه را بسازید و اجرا کنید.
3. سرور برنامه را راه اندازی کنید
اکنون که برنامه شما راه اندازی شده است، باید یک نمونه کد سمت سرور را برای ارسال پیام به برنامه خود با استفاده از FCM v1 API دانلود کنید. این کد اعتبار API را بارگیری می کند (که در بخش بعدی توضیح داده شده است) تا یک نشانه دسترسی ایجاد کند. سپس با استفاده از پیامرسانی موضوع FCM، پیامی را به برنامه شما ارسال میکند.
- کد سرور شروع را با دانلود پروژه Github وارد کنید. پروژه «پیامرسانی» یک پروژه جاوا مبتنی بر Gradle است که به Firebase-admin SDK وابسته است، که قابلیت ارسال پیامها را فراهم میکند.
جزئیات بیشتر در مورد اینکه چگونه یک سرور برنامه باید با FCM کار کند را می توان در سند محیط سرور شما و FCM یافت.
4. اعتبار v1 را دریافت کنید
API FCM HTTP v1 از توکن های دسترسی کوتاه مدت مطابق با مدل امنیتی OAuth2 استفاده می کند. در مقایسه با کلید API استاتیک مورد استفاده در API قدیمی FCM، نشانه دسترسی کوتاه مدت کمتر در معرض خطر نشت اعتبار است. در این بخش مراحل ایجاد اعتبار برای تولید رمز دسترسی مورد استفاده در فراخوانی API توضیح داده شده است.
- یک حساب سرویس Firebase راهاندازی کنید تا به Firebase Admin SDK اجازه تماس با APIهای FCM را بدهد. Project Settings را در کنسول Firebase باز کنید و برگه Service accounts را انتخاب کنید. برای دانلود قطعه پیکربندی روی Generate new private key کلیک کنید.
- در پروژه Github دانلود شده، نام فایل دانلود شده را به
service-account.json
تغییر دهید و آن را در مسیرmessaging/
پروژه کپی کنید. - متد
getAccessToken()
(در زیر نشان داده شده است) در کلاسMessaging.java
یک توکن OAuth2 تولید می کند که برای 1 ساعت معتبر است.
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 API ارسال کنید
اکنون آماده ارسال پیام از طریق HTTP v1 API هستید. مراحل زیر را دنبال کنید:
- برای افزودن نشانه دسترسی به سربرگ درخواست HTTP:
- توکن را به عنوان مقدار هدر Authorization در قالب
Authorization: Bearer <access_token>
اضافه کنید - یک درخواست HTTP به API FCM v1 با استفاده از 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 را با یک برنامه اندروید ادغام کنید
- اعتبارنامه برای FCM HTTP v1 API ایجاد کنید
- از طریق API FCM HTTP v1 به برنامه خود پیام ارسال کنید
برای بررسی ویژگی های پیشرفته ای که FCM ارائه می دهد، مراجع زیر مفید هستند: