הפניה לשרת

Stay organized with collections Save and categorize content based on your preferences.

יישום השרת הוא אופציונלי. השתמשו בשירות מזהה המופע אם אתם רוצים לבצע את הפעולות הבאות:

קבלת מידע על מופעים של אפליקציות

כדי לקבל מידע על מופע אפליקציה, יש להתקשר לשירות מזהה המופע בנקודת הקצה הזו ולציין את אסימון המופע של האפליקציה כפי שמוצג:

 https://iid.googleapis.com/iid/info/IID_TOKEN

פרמטרים

  • Authorization: key=YOUR_API_KEY. יש להגדיר את הפרמטר הזה בכותרת.
  • [אופציונלי] ערך בוליאני details: יש להגדיר את פרמטר השאילתה הזה ל-true כדי לקבל נתונים על מינוי FCM או פרטי נושא של GCM (אם יש) המשויכים לאסימון הזה. אם לא צוין ערך, ברירת המחדל היא false.

תוצאות

לאחר הצלחת השיחה, יוחזר הסטטוס HTTP 200 ואובייקט JSON שמכיל:

  • application – שם החבילה המשויך לאסימון.
  • authorizedEntity – ProjectId מורשה לשלוח לאסימון.
  • applicationVersion – גרסת האפליקציה.
  • appSignersha1 טביעת אצבע של החתימה הוחלה על החבילה. מציין איזה צד חתם על האפליקציה. לדוגמה,Play Store.
  • platform – פונקציה זו מחזירה את ANDROID, IOS או CHROME כדי לציין את פלטפורמת המכשיר שאליה שייך האסימון.

אם הדגל details מוגדר:

  • rel – קשרים המשויכים לאסימון. לדוגמה, רשימה של הרשמות נושא.

דוגמה של בקשה GET

https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

תוצאה לדוגמה

HTTP 200 OK
{
  "application":"com.iid.example",
  "authorizedEntity":"123456782354",
  "platform":"Android",
  "appSigner":"1a2bc3d4e5"
  "rel":{
    "topics":{
      "topicname1":{"addDate":"2015-07-30"},
      "topicname2":{"addDate":"2015-07-30"},
      "topicname3":{"addDate":"2015-07-30"},
      "topicname4":{"addDate":"2015-07-30"}
    }
  }
}

יצירת מפות יחסיות למופעים של אפליקציות

ה-API של מזהה המופע מאפשר ליצור מפות קשרים עבור מופעים של אפליקציות. לדוגמה, אתם יכולים למפות אסימון רישום לנושא ב-Google Cloud Messaging, ולרשום את המופע של האפליקציה לנושא. ה-API מספק שיטות ליצירת קשרים כאלה, בנפרד או בכמות גדולה.

יצירת מיפוי קשר למופע של אפליקציה

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

 https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME

פרמטרים

  • Authorization: key=YOUR_API_KEY. יש להגדיר את הפרמטר הזה בכותרת.

תוצאות

הצלחת השיחה מחזירה את הסטטוס 200 של HTTP.

דוגמה של בקשה POST

https://iid.googleapis.com/iid/v1/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA/rel/topics/movies
Content-Type:application/json
Content-Length: 0
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

תוצאה לדוגמה

HTTP 200 OK
{}

ניהול מפות מערכות יחסים למספר מופעים של אפליקציות

באמצעות שיטות האצווה של מזהה המופע's, ניתן לבצע ניהול אצווה של מופעים של אפליקציות. לדוגמה, אפשר לבצע הוספה או הסרה בכמות גדולה של מופעים של אפליקציות לנושא FCM או GCM. כדי לעדכן עד 1, 000 מופעים של אפליקציות לכל קריאה ל-API, יש להתקשר לשירות מזהה המופע בנקודת הקצה הזו ולספק את אסימוני המופע של האפליקציה בגוף ה-JSON:

 https://iid.googleapis.com/iid/v1:batchAdd

 https://iid.googleapis.com/iid/v1:batchRemove

פרמטרים

  • Authorization : key=YOUR_API_KEY. יש להגדיר את הפרמטר הזה בכותרת.
  • to : שם הנושא.
  • registration_tokens : מערך אסימוני ה-IID של המופעים של האפליקציה שברצונך להוסיף או להסיר.

תוצאות

הצלחת השיחה מחזירה את הסטטוס 200 של HTTP. תוצאות ריקות מציינות שמינוי הצליח לאסימון. כשמדובר במינויים שנכשלו, התוצאה כוללת אחד מקודי השגיאה הבאים:

  • NOT_FOUND — אסימון הרישום נמחק או שהאפליקציה הוסרה.
  • INVALID_FALSE — אסימון הרישום שצוין אינו תקף עבור מזהה השולח.
  • פנימי: שרת הקצה העורפי נכשל מסיבות לא ידועות. מנסים לבצע שוב את הבקשה.
  • TOO_MANY_EVENTS – מספר מוגזם של נושאים לכל מופע של אפליקציה.

דוגמה של בקשה POST

https://iid.googleapis.com/iid/v1:batchAdd
Content-Type:application/json
Authorization:key=API_KEY
{
   "to": "/topics/movies",
   "registration_tokens": ["nKctODamlM4:CKrh_PC8kIb7O...", "1uoasi24:9jsjwuw...", "798aywu:cba420..."],
}

תוצאה לדוגמה

HTTP 200 OK
{
  "results":[
    {},
    {"error":"NOT_FOUND"},
    {},
  ]
}

יצירת אסימוני רישום לאסימוני APN

באמצעות השיטה batchImport של מזהה המופע, אפשר לייבא כמות גדולה של אסימונים APN של iOS ל-Google Cloud Messaging או ל-Firebase Cloud Messaging ולמפות אותם לאסימוני רישום חוקיים. מפעילים את השירות של מזהה המופע בנקודת הקצה הזו ומספקים רשימה של אסימוני APN בגוף ה-JSON:

 https://iid.googleapis.com/iid/v1:batchImport

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

פרמטרים

  • Authorization : key=YOUR_API_KEY. יש להגדיר את הפרמטר הזה בכותרת.
  • application : מזהה החבילה של האפליקציה.
  • sandbox : ערך בוליאני שמציין את סביבת ארגז החול (TRUE) או את הייצור (FALSE)
  • apns_tokens : מערך האסימונים של APN למכונות האפליקציה שברצונך להוסיף או להסיר. עד 100 אסימונים לכל בקשה.

תוצאות

אחרי שהתהליך הסתיים, השיחה תחזיר סטטוס HTTP 200 וגוף תוצאת JSON. עבור כל אסימון APN שצוין בבקשה, רשימת התוצאות כוללת:

  • אסימון APN.
  • סטטוס. בסדר, או הודעת שגיאה שמתארת את פעולת הכשל.
  • לקבלת תוצאות מוצלחות, אסימון הרישום ש-FCM או GCM ממופה לאסימון APN.

דוגמה של בקשה POST

https://iid.googleapis.com/iid/v1:batchImport
{
  "application": "com.google.FCMTestApp",
  "sandbox":false,
  "apns_tokens":[
      "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
      "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86"
   ]
  }
}

תוצאה לדוגמה

HTTP 200 OK
{
 "results":[
       {
        "apns_token": "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
         "status": "OK",
         "registration_token":"nKctODamlM4:CKrh_PC8kIb7O...clJONHoA"
       },
       {
         "apns_token": "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86",
         "status":"Internal Server Error"
        },
     ]
  }

ניהול אסימוני הרשמה למינויים בדחיפה

באמצעות שיטות השירות 'מזהה המופע' באינטרנט, אפשר לייבא מנויי Push קיימים ל-Firebase Cloud Messaging. תוכלו גם לעדכן ולמחוק אותן.

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

ייבוא מינויי Push

אפשר לייבא מינויים לדחיפה באמצעות נקודת הקצה של InstanceID'

 https://iid.googleapis.com/v1/web/iid

הבקשה חייבת לכלול כותרת הרשאה שהוגדרה לאסימון הגישה OAuth 2.0, כותרת מפתח ההצפנה שהוגדרה למפתח שרת האפליקציות ולאובייקט PushSubscription בגוף הבקשה.

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

העלאת זוג מפתחות VAPID למסוף

כדי לייבא מפתחות, צריכה להיות לכם גישה ברמת הבעלים לפרויקט Firebase. מייבאים את המפתח הציבורי והפרטי הקיים בצורה מקודדת בטוחה של כתובת URL בבסיס 64:

  1. פותחים את הכרטיסייה העברת הודעות בענן בהגדרות של מסוף Firebase וגוללים לקטע תצורת אינטרנט.
  2. בכרטיסייה Web Push Certificates, מוצאים את טקסט הקישור ובוחרים אותו, & הזהות, מייבאים זוג מפתחות קיים.
  3. בתיבת הדו-שיח ייבוא זוג מפתחות, מספקים את המפתחות הציבוריים והפרטיים בשדות המתאימים ולוחצים על ייבוא. המסוף מציג את המחרוזת והתאריך של המפתח הציבורי שנוספו.

אחזור אסימון OAuth2: שימוש בפרטי כניסה ל המטבעה של אסימוני גישה

כדי ליצור אסימון גישה לבקשה, עליך ללטש את אסימון הגישה ולהוסיף אותו לבקשת ה-HTTP.

בצומת.js

 function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

Python

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', SCOPES)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

Java

private static String getAccessToken() throws IOException {
  GoogleCredentials googleCredentials = GoogleCredentials
          .fromStream(new FileInputStream("service-account.json"))
          .createScoped(Arrays.asList(SCOPES));
  googleCredentials.refreshAccessToken();
  return googleCredentials.getAccessToken().getTokenValue();
}

כדי לאשר גישה ל-FCM, יש לבקש את ההיקף https://www.googleapis.com/auth/firebase.messaging.

פרמטרים

  • הרשאה: Bearer <access_token>. יש להגדיר את הפרמטר הזה בכותרת.
  • מפתח ההצפנה: p256ecdsa=APPLICATION_PUBLIC_KEY. יש להגדיר את הפרמטר הזה בכותרת.
  • גוף הבקשה: PushSubscription.toJson(). העברת המינוי לגוף ה-HTTP מבלי לנתח אותו. התוכן תואם לקידוד W3C של PushSubscription.

תשובה

היא הצליחה להחזיר את הסטטוס HTTP 200 סביר וגוף תוצאות JSON שמכיל את אסימון IID.

דוגמה של בקשה POST

 https://iid.googleapis.com/v1/web/iid
 Content-Type:application/json
 Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
 Crypto-Key:p256ecdsa=BFv5XHxdkZgpQzCb-...8uI42kf4A4USEIMo
 {
   "endpoint": "https://fcm.googleapis.com/fcm/send/dS4xerbSlqU:APb...aRs4QP",
   "keys": {
         "auth": "7cdY...xxjwz46Q",
         "p256dh": "BH7xPjScJe...z9lbIZDmOV_c"
    }
 }

תוצאה לדוגמה

HTTP 200 OK
{
 "token":"KctODamlM4:CKrh_PC...cl"
}

עדכון מינויים בדחיפה

תוכלו לעדכן את המינוי לדחיפה שמשויך לאסימון הרישום באמצעות נקודת הקצה הבאה:

 https://iid.googleapis.com/v1/web/iid/REGISTRATION_TOKEN:refresh

פרמטרים

  • הרשאה: Bearer <access_token>. יש להגדיר את הפרמטר הזה בכותרת.
  • מפתח ההצפנה: p256ecdsa=APPLICATION_PUBLIC_KEY. יש להגדיר את הפרמטר הזה בכותרת.
  • גוף הבקשה: PushSubscription.toJson(). העברת המינוי בדחיפה לגוף ה-HTTP בלי לנתח אותו. התוכן תואם לקידוד W3C של PushSubscription.

תוצאות

הצלחת השיחה מחזירה את הסטטוס 200 של HTTP ואת אסימון הרישום. זה יכול להיות אותו אסימון שהעברת בבקשה, או אסימון חדש.

HTTP 200 OK
{
 "token":"KctODamlM4:CKrh_PC...cl"
}

דוגמה של בקשה POST

 https://iid.googleapis.com/v1/web/iid/KctODamlM4:CKrh_PC...cl:refresh
 Content-Type:application/json
 Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
 Crypto-Key:p256ecdsa=BFv5XHxdkZgpQzCb-...8uI42kf4A4USEIMo
 {
   "endpoint": "https://fcm.googleapis.com/fcm/send/dS4xerbSlqU:APb...aRs4QP",
   "keys": {
         "auth": "7cdY...xxjwz46Q"",
         "p256dh": "BH7xPjScJe...z9lbIZDmOV_c"
    }
 }

תוצאה לדוגמה

 HTTP 200 OK
 {
  "token":"KctODamlM4:CI2k_HHw...3P1"
 }

מחיקת מינויים בדחיפה

בקשת DELETE מסירה את פרטי המינוי בדחיפה ממסד הנתונים של FCM. עדיין תוכלו לקבל הודעות באפליקציית האינטרנט באמצעות הפרוטוקול Push API.

כדי למחוק מינוי דחיפה, יש לשלוח בקשת DELETE אל:

 https://iid.googleapis.com/v1/web/iid/REGISTRATION_TOKEN

דוגמה של בקשה DELETE

 https://iid.googleapis.com/v1/web/iid/KctODamlM4:CI2k_HHw...3P1
 Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

תוצאה לדוגמה

 HTTP 200 OK {}

תגובות שגיאה

קריאות ל-Instance ID Server Server API מחזירות את קודי השגיאה הבאים של HTTP:

  • HTTP status 400 (Bad request) - פרמטרים של בקשות חסרים או לא חוקיים. מידע מפורט מופיע בהודעות שגיאה.
  • HTTP status 401 (Unauthorized) - כותרת ההרשאה לא חוקית.
  • HTTP status 403 (Forbidden) – כותרת ההרשאה לא תואמת ל-authorizedEntity.
  • HTTP status 404 (Not found) – לא נמצא נתיב HTTP או אסימון IID לא חוקיים. מידע מפורט מופיע בהודעות שגיאה.
  • HTTP status 503 (Service unavailable) - השירות אינו זמין. מנסים שוב את הבקשה עם השהיה מעריכית לפני ניסיון חוזר.