Referensi Server

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Implementasi server bersifat opsional. Gunakan layanan ID Instance jika Anda ingin menjalankan operasi ini:

Mendapatkan informasi tentang instance aplikasi

Untuk mendapatkan informasi tentang instance aplikasi, panggil layanan ID Instance di endpoint ini, dengan menyediakan token instance aplikasi seperti yang ditunjukkan:

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

Parameter

  • Authorization: kunci=YOUR_API_KEY. Tetapkan parameter ini di header.
  • [opsional] boolean details: tetapkan parameter kueri ini ke true untuk mendapatkan informasi langganan topik FCM atau GCM (jika ada) yang terkait dengan token ini. Jika tidak ditentukan, defaultnya adalah false.

Hasil

Jika berhasil, panggilan akan menampilkan status HTTP 200 dan objek JSON yang berisi:

  • application - nama paket yang terkait dengan token.
  • authorizedEntity - projectId yang diizinkan untuk dikirim ke token.
  • applicationVersion - versi aplikasi.
  • appSigner - Sidik jari sha1 untuk tanda tangan yang diterapkan pada paket. Menunjukkan pihak mana yang menandatangani aplikasi; misalnya,Play Store.
  • platform - menampilkan ANDROID, IOS, atau CHROME untuk menunjukkan platform perangkat tempat token berada.

Jika flag details ditetapkan:

  • rel - hubungan yang terkait dengan token. Misalnya, daftar langganan topik.

Contoh permintaan GET

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

Contoh hasil

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"}
    }
  }
}

Membuat peta hubungan untuk instance aplikasi

Instance ID API memungkinkan Anda membuat peta hubungan untuk instance aplikasi. Misalnya, Anda dapat memetakan token pendaftaran ke topik Google Cloud Messaging, dengan membuat instance aplikasi berlangganan topik tersebut. API menyediakan metode untuk membuat hubungan tersebut baik secara terpisah maupun massal.

Membuat pemetaan relasi untuk instance aplikasi

Dengan token pendaftaran dan hubungan yang didukung, Anda dapat membuat pemetaan. Misalnya, Anda dapat membuat instance aplikasi berlangganan topik Google Cloud Messaging dengan memanggil layanan ID Instance di endpoint ini dengan memberikan token instance aplikasi seperti yang ditunjukkan di bawah:

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

Parameter

  • Authorization: kunci=YOUR_API_KEY. Tetapkan parameter ini di header.

Hasil

Jika berhasil, panggilan akan menampilkan status HTTP 200.

Contoh permintaan 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

Contoh hasil

HTTP 200 OK
{}

Mengelola peta hubungan untuk beberapa instance aplikasi

Dengan metode batch layanan ID Instance, Anda dapat melakukan pengelolaan batch instance aplikasi. Misalnya, Anda dapat melakukan penambahan atau penghapusan instance aplikasi secara massal pada topik FCM atau GCM. Untuk mengupdate hingga 1.000 instance aplikasi per panggilan API, panggil layanan ID Instance di endpoint ini, dengan menyediakan token instance aplikasi dalam isi JSON:

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

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

Parameter

  • Authorization: kunci=YOUR_API_KEY. Tetapkan parameter ini di header.
  • to : Nama topik.
  • registration_tokens : Array token IID untuk instance aplikasi yang ingin Anda tambahkan atau hapus.

Hasil

Jika berhasil, panggilan akan menampilkan status HTTP 200. Hasil kosong menunjukkan langganan token yang berhasil. Untuk langganan yang gagal, hasilnya berisi salah satu kode error berikut:

  • NOT_FOUND — Token pendaftaran telah dihapus atau aplikasi telah di-uninstal.
  • INVALID_ berkembang — Token pendaftaran yang diberikan tidak valid untuk ID Pengirim.
  • INTERNAL — Server backend gagal karena alasan yang tidak diketahui. Coba lagi permintaan tersebut.
  • TOO_MANY_TOPICS — Jumlah topik yang terlalu banyak per instance aplikasi.
  • RESOURCE_EXHAUSTED — Terlalu banyak permintaan langganan atau pembatalan langganan dalam waktu singkat. Coba lagi dengan backoff eksponensial.

Contoh permintaan 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..."],
}

Contoh hasil

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

Membuat token pendaftaran untuk token APNs

Dengan metode batchImport layanan ID Instance, Anda dapat mengimpor token APN iOS yang ada ke Google Cloud Messaging atau Firebase Cloud Messaging secara massal, dan memetakannya ke token pendaftaran yang valid. Panggil layanan ID Instance di endpoint ini dengan memasukkan daftar token APNs dalam isi JSON:

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

Isi respons memuat array token pendaftaran ID Instance yang siap digunakan untuk mengirim pesan FCM atau GCM ke token perangkat APN yang sesuai.

Parameter

  • Authorization: kunci=YOUR_API_KEY. Tetapkan parameter ini di header.
  • application : ID paket aplikasi.
  • sandbox : Boolean untuk menunjukkan lingkungan sandbox (TRUE) atau produksi (FALSE)
  • apns_tokens : Array token APNs untuk instance aplikasi yang ingin Anda tambahkan atau hapus. Maksimum 100 token per permintaan.

Hasil

Jika berhasil, panggilan akan menampilkan status HTTP 200 dan isi hasil JSON. Untuk setiap token APNs yang diberikan dalam permintaan, daftar hasilnya berisi:

  • Token APNs.
  • Status. Baik, atau pesan error yang menjelaskan kegagalan.
  • Agar berhasil, token pendaftaran yang dipetakan FCM atau GCM ke token APNs.

Contoh permintaan POST

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

Contoh hasil

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

Mengelola token pendaftaran untuk langganan push

Dengan metode Web layanan ID Instance, Anda dapat mengimpor langganan push yang ada untuk Firebase Cloud Messaging. Anda juga dapat memperbarui dan menghapusnya.

Saat mengimpor langganan push, Anda akan menerima token pendaftaran. Token ini memungkinkan Anda menggunakan fitur FCM, seperti pesan topik dan pesan grup perangkat untuk menargetkan notifikasi ke aplikasi web.

Mengimpor langganan push

Anda dapat mengimpor langganan push menggunakan endpoint web InstanceID:

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

Permintaan harus berisi header otorisasi yang ditetapkan ke token akses OAuth 2.0, header kunci kripto yang disetel ke kunci server aplikasi Anda, dan objek PushSubscription dalam isi permintaan.

Isi respons memuat token pendaftaran yang siap digunakan untuk mengirim pesan FCM atau GCM ke instance aplikasi web yang sesuai tanpa harus mengenkripsi payload.

Mengupload pasangan kunci VAPID Anda ke konsol

Untuk mengimpor kunci, Anda harus memiliki akses level pemilik ke project Firebase. Impor kunci publik dan pribadi yang ada dalam format berenkode base64 yang aman untuk URL:

  1. Di panel Settings Firebase Console, buka tab Cloud Messaging, lalu scroll ke bagian Web configuration.
  2. Di tab Web Push certificates, temukan dan pilih teks link, "import an existing key pair".
  3. Dalam dialog Import a key pair, berikan kunci publik dan pribadi Anda di kolom terkait dan klik Import. Console akan menampilkan string kunci publik dan tanggal penambahannya.

Mengambil token OAuth2: Gunakan kredensial untuk membuat token akses

Untuk membuat token akses bagi permintaan, Anda harus membuat token akses dan menambahkannya ke permintaan HTTP.

node.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();
}

Untuk mengizinkan akses ke FCM, minta cakupan https://www.googleapis.com/auth/firebase.messaging.

Parameter

  • Otorisasi: Bearer <access_token>. Tetapkan parameter ini di header.
  • Kunci Kripto: p256ecdsa=APPLICATION_PUBLIC_KEY. Tetapkan parameter ini di header.
  • Isi permintaan: PushSubscription.toJson(). Teruskan langganan push ke isi HTTP tanpa menguraikannya. Konten sesuai dengan encoding W3C PushSubscription.

Tanggapan

Setelah berhasil, panggilan akan menampilkan status HTTP 200 OK dan isi hasil JSON yang berisi token IID.

Contoh permintaan 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"
    }
 }

Contoh hasil

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

Memperbarui langganan push

Anda dapat memperbarui langganan push yang terkait dengan token pendaftaran menggunakan endpoint berikut:

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

Parameter

  • Otorisasi: Bearer <access_token>. Tetapkan parameter ini di header.
  • Kunci Kripto: p256ecdsa=APPLICATION_PUBLIC_KEY. Tetapkan parameter ini di header.
  • Isi permintaan: PushSubscription.toJson(). Teruskan langganan push ke isi HTTP tanpa menguraikannya. Konten sesuai dengan encoding W3C PushSubscription.

Hasil

Jika berhasil, panggilan akan menampilkan status HTTP 200 dan token pendaftaran. Token ini mungkin sama dengan yang Anda teruskan dalam permintaan, atau token baru.

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

Contoh permintaan 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"
    }
 }

Contoh hasil

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

Menghapus langganan push

Permintaan DELETE menghapus detail langganan push dari database FCM. Anda masih dapat menerima pesan di aplikasi web menggunakan protokol Push API.

Untuk menghapus langganan push, kirim permintaan DELETE ke:

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

Contoh permintaan DELETE

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

Contoh hasil

 HTTP 200 OK {}

Respons error

Panggilan ke API server ID Instance akan menampilkan kode error HTTP berikut:

  • HTTP status 400 (Bad request) - parameter permintaan tidak ada atau tidak valid. Periksa pesan error untuk mendapatkan informasi mendetail.
  • HTTP status 401 (Unauthorized) - header otorisasi tidak valid.
  • HTTP status 403 (Forbidden) - header otorisasi tidak cocok dengan authorizedEntity.
  • HTTP status 404 (Not found) - Jalur HTTP atau token IID tidak valid tidak ditemukan. Periksa pesan error untuk mendapatkan informasi mendetail.
  • HTTP status 503 (Service unavailable) - layanan tidak tersedia. Coba lagi permintaan tersebut dengan backoff eksponensial.