השתמש ב-FCM HTTP v1 API עם אסימוני גישה של OAuth 2

1. הקדמה

בהשוואה ל-API מדור קודם של FCM, FCM HTTP v1 API מספק מודל הרשאה מאובטח יותר באמצעות אסימוני גישה קצרי מועד. השלבים ליצירת אסימון הגישה עבור FCM v1 API שונים באופן משמעותי מהשלבים עבור ה-API מדור קודם.

מעבד קוד זה מנחה אותך בתהליך של הגדרת צד הלקוח והשרת כדי לאפשר שליחת הודעות דחיפה לאפליקציית אנדרואיד באמצעות FCM HTTP v1 API. זה מדגיש את השלב המרכזי של יצירת אישורים עבור ה-API v1.

מידע נוסף ניתן למצוא בכתובת:

דרישות מוקדמות

  • הבנה בסיסית בפיתוח Java ואנדרואיד

מה תלמד

  • שלבים מפורטים של הגדרת צד הלקוח והשרת כדי לאפשר שליחת הודעות דחיפה לאפליקציית Android שלך באמצעות FCM HTTP v1 API
  • יצירת אישורים עבור ה-API של HTTP v1 באמצעות חשבונות שירות
  • שליחת הודעות בדיקה דרך ה-API של HTTP v1

מה אתה צריך

הגרסה היציבה האחרונה של Android Studio

אחד מהמכשירים הבאים:

סביבת פיתוח Java או עורך קוד לבחירתכם

2. פרויקט Firebase והגדרת אפליקציית אנדרואיד

בסוף מעבדת הקוד, תוכל לשלוח הודעות לאפליקציה שלך באמצעות Firebase Cloud Messaging. לפני שתעשה זאת, תצטרך ליצור פרויקט Firebase. מעבדת קוד זה מספקת גם אפליקציית אנדרואיד המכילה קוד לדוגמה לשילוב עם FCM.

הגדרת פרויקט Firebase

הגדרת אפליקציית אנדרואיד

אפליקציית אנדרואיד לדוגמה שסופקה במעבדת קוד זה כבר משולבת עם FCM. לאחר ההתחלה, הוא יירשם לשרת FCM וירשם לנושא. בשלבים המאוחרים יותר של מעבדת קוד זה, תשלח הודעת נושא לנושא והאפליקציה שלך תקבל אותה.

3. הגדר את שרת האפליקציות

כעת כשהאפליקציה שלך מוגדרת, תצטרך להוריד דוגמת קוד בצד השרת לשליחת הודעות לאפליקציה שלך באמצעות FCM v1 API. קוד זה טוען את אישורי ה-API (המתוארים בסעיף הבא) כדי ליצור אסימון גישה. לאחר מכן הוא שולח הודעה לאפליקציה שלך באמצעות הודעות נושא FCM.

  • ייבא את קוד השרת המתחיל על ידי הורדת פרויקט Github . פרויקט "הודעות" הוא פרויקט Java מבוסס Gradle עם תלות ב- firebase-admin SDK, המספק פונקציונליות לשליחת הודעות.

פרטים נוספים על האופן שבו שרת אפליקציות צריך לעבוד עם FCM ניתן למצוא במסמך סביבת השרת שלך ו-FCM .

4. קבל אישורי v1

FCM HTTP v1 API משתמש באסימוני גישה קצרי מועד בהתאם למודל האבטחה OAuth2. בהשוואה למפתח ה-API הסטטי המשמש ב-API מדור קודם של FCM, אסימון הגישה לטווח קצר חשוף פחות לסיכון של דליפת אישורים. סעיף זה מפרט את השלבים ליצירת אישור להפקת אסימון הגישה המשמש בקריאה ל-API.

  1. הגדר חשבון שירות Firebase כדי לאפשר ל-Firebase Admin SDK לאשר קריאות לממשקי FCM API. פתח את הגדרות הפרויקט במסוף 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

כעת אתה מוכן לשלוח הודעה דרך ה-API של HTTP v1. בצע את השלבים הבאים:

  • כדי להוסיף את אסימון הגישה לכותרת בקשת HTTP:
  • הוסף את האסימון כערך של כותרת ההרשאה בפורמט 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" .

  • לאחר מסירת הודעה בהצלחה, אתה אמור לראות הודעה קופצת על המסך שלך, בדומה לתמונה למטה:

54ae84ece22202cd.png

6. מסקנה

מזל טוב! השלמת בהצלחה את מעבדת הקוד כדי:

  • הגדר פרויקט Firebase
  • שלב את Firebase עם אפליקציית אנדרואיד
  • צור אישורים עבור FCM HTTP v1 API
  • שלח הודעה לאפליקציה שלך דרך FCM HTTP v1 API

כדי לחקור את התכונות המתקדמות שמציעה FCM, ההפניות הבאות שימושיות: