Implementasi server bersifat opsional. Gunakan layanan ID Instance jika Anda ingin menjalankan operasi ini:
- Dapatkan informasi tentang instance aplikasi. Verifikasi token aplikasi atau dapatkan informasi lebih lanjut tentang instance aplikasi yang membuat token.
- Buat peta hubungan untuk instance aplikasi. Buat hubungan antara instance aplikasi dan entity seperti topik FCM atau GCM.
- Membuat token pendaftaran untuk token APNs. API ini memungkinkan Anda mengimpor token APN yang ada secara massal, memetakannya ke token pendaftaran yang valid untuk FCM atau GCM.
- Mengelola token pendaftaran untuk langganan push. Untuk aplikasi web yang diterapkan menggunakan Push API, impor langganan push yang ada, dengan memetakannya ke token pendaftaran yang valid untuk FCM.
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 ketrue
untuk mendapatkan informasi langganan topik FCM atau GCM (jika ada) yang terkait dengan token ini. Jika tidak ditentukan, defaultnya adalahfalse
.
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 jarisha1
untuk tanda tangan yang diterapkan pada paket. Menunjukkan pihak mana yang menandatangani aplikasi; misalnya,Play Store
.platform
- menampilkanANDROID
,IOS
, atauCHROME
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:
- Di panel Settings Firebase Console, buka tab Cloud Messaging, lalu scroll ke bagian Web configuration.
- Di tab Web Push certificates, temukan dan pilih teks link, "import an existing key pair".
- 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 W3CPushSubscription
.
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 W3CPushSubscription
.
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 denganauthorizedEntity
.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.