Autentikasi
Gunakan API key atau tanda tangan CheckSum. Simpan kredensial di server Anda.
Buat kredensial melalui Console > Developers untuk memanggil API publik InnoPaaS.
Pilih metode autentikasi menggunakan aturan di bawah, lalu ikuti contoh permintaan yang sesuai. Definisi dan batasan field header ada di bagian Kontrak header permintaan.
Pilih metode autentikasi
Setiap permintaan hanya boleh memakai satu metode autentikasi. Untuk pemanggilan API biasa, disarankan menggunakan API Key.
| Situasi | Metode autentikasi | Kredensial atau parameter yang dibutuhkan |
|---|---|---|
| Pemanggilan API biasa; integrasi sesederhana mungkin | API Key (disarankan) | API KEY |
| Bisnis mewajibkan autentikasi berbasis tanda tangan | CheckSum | API KEY, API SECRET, Nonce, CurTime |
Metode dan prioritas: Authorization yang tidak kosong memakai API Key; jika tidak dikirim atau kosong, dipakai CheckSum. Jika keduanya dikirim, Authorization diprioritaskan dan permintaan API Key yang gagal tidak beralih ke CheckSum.
Autentikasi API Key
Buat API KEY dan API SECRET melalui Console > Developers. Masukkan API KEY ke Authorization; API SECRET tidak dipakai oleh metode ini dan tidak pernah dikirim bersama permintaan. Langkah di Console ada di Buat API key.
curl --request POST '<API_URL>' \
--header 'Content-Type: application/json;charset=utf-8' \
--header 'Authorization: Bearer <API_KEY>' \
--data-raw '<BUSINESS_JSON>'Sebelum memanggil, ganti <API_URL>, <API_KEY>, dan <BUSINESS_JSON> dengan nilai sebenarnya. Antara Bearer dan kunci harus tepat satu spasi. Jangan kirim AppID, Nonce, CurTime, atau CheckSum dengan metode ini.
Kontrak header permintaan
Autentikasi API Key
| Header | Wajib | Keterangan |
|---|---|---|
Authorization | Ya | Format Bearer <API_KEY>, dengan tepat satu spasi antara Bearer dan kunci. Metode ini tidak mengirim 4 header CheckSum dan tidak memakai API SECRET. |
Autentikasi CheckSum
Jangan kirim Authorization. Keempat header berikut semuanya wajib:
| Header | Batasan |
|---|---|
AppID | Nilai lengkap API KEY, bukan ID aplikasi terpisah. |
Nonce | String acak per permintaan, ≤128 karakter, untuk mencegah replay. |
CurTime | Timestamp UTC unix dalam detik; selisih dengan waktu server maksimal 5 menit. |
CheckSum | Tanda tangan hex huruf besar yang dihitung sesuai aturan di bawah. |
Unggahan media memakai multipart/form-data; ikuti dokumentasi endpoint unggahan dan jangan menerapkan jenis konten JSON pada unggahan file.
Autentikasi tanda tangan CheckSum
CheckSum = SHA1(API_SECRET + Nonce + CurTime).toUpperCase()Gabungkan ketiga bagian secara berurutan tanpa pemisah, hitung SHA1 dengan encoding UTF-8, lalu ubah hasil hex menjadi huruf besar. Nonce dan CurTime harus sama persis dengan header permintaan. API SECRET hanya dipakai untuk perhitungan lokal dan tidak pernah dikirim.
curl --request POST '<API_URL>' \
--header 'Content-Type: application/json;charset=utf-8' \
--header 'AppID: <API_KEY>' \
--header 'Nonce: <NONCE>' \
--header 'CurTime: <UNIX_TIMESTAMP_SECONDS>' \
--header 'CheckSum: <CHECKSUM_UPPERCASE_HEX>' \
--data-raw '<BUSINESS_JSON>'Contoh per bahasa
const crypto = require('crypto');
const nonce = crypto.randomBytes(16).toString('hex');
const curTime = Math.floor(Date.now() / 1000).toString();
const checkSum = crypto.createHash('sha1').update(apiSecret + nonce + curTime, 'utf8').digest('hex').toUpperCase();Batas penyimpanan kredensial: API KEY dan API SECRET hanya boleh disimpan dan dipakai di sisi server. Jangan tanamkan di kode browser atau aplikasi mobile. API SECRET tidak pernah dikirim bersama permintaan.
Dokumen terkait
-
Buat API key: buat
API KEYdanAPI SECRETdi Console. -
Kirim notifikasi suara pertama Anda: dari aktivasi hingga notifikasi suara pertama.
-
Ringkasan API: lihat semua endpoint API dan kontrak parameternya.
Contoh memakai POST; metode HTTP sebenarnya mengikuti dokumentasi tiap endpoint. Contoh URL, parameter, dan respons bukan merupakan kontrak bisnis.
Terakhir diperbarui pada