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
- בצע את "שלב 1: צור פרויקט Firebase " כדי ליצור פרויקט Firebase משלך עבור מעבד הקוד הזה.
הגדרת אפליקציית אנדרואיד
אפליקציית אנדרואיד לדוגמה שסופקה במעבדת קוד זה כבר משולבת עם FCM. לאחר ההתחלה, הוא יירשם לשרת FCM וירשם לנושא. בשלבים המאוחרים יותר של מעבדת קוד זה, תשלח הודעת נושא לנושא והאפליקציה שלך תקבל אותה.
- הורד את דוגמה להתחלה מהירה של Firebase Android .
- ייבא את הפרויקט תחת https://github.com/firebase/quickstart-android/tree/master/messaging ל-Android Studio.
- רשום את האפליקציה ב-Firebase Console. שם האפליקציה הוא
com.google.firebase.quickstart.fcm
. רשום את האפליקציה הזו בפרויקט Firebase שלך על ידי ביצוע השלבים בקטע "שלב 2: רישום האפליקציה שלך עם Firebase ". - עקוב אחר חלק 1 של "שלב 3: הוסף קובץ תצורה של Firebase " כדי להוריד את
google-services.json
ולהוסיף אותו לפרויקט שלך. לבנות ולהפעיל את הפרויקט.
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.
- הגדר חשבון שירות Firebase כדי לאפשר ל-Firebase Admin SDK לאשר קריאות לממשקי FCM API. פתח את הגדרות הפרויקט במסוף 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 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"
.
- לאחר מסירת הודעה בהצלחה, אתה אמור לראות הודעה קופצת על המסך שלך, בדומה לתמונה למטה:
6. מסקנה
מזל טוב! השלמת בהצלחה את מעבדת הקוד כדי:
- הגדר פרויקט Firebase
- שלב את Firebase עם אפליקציית אנדרואיד
- צור אישורים עבור FCM HTTP v1 API
- שלח הודעה לאפליקציה שלך דרך FCM HTTP v1 API
כדי לחקור את התכונות המתקדמות שמציעה FCM, ההפניות הבאות שימושיות: