Membuat Push API
Kirim notifikasi atau pesan ke satu perangkat atau ke daftar perangkat.
Konten yang dikirim hanya berupa objek push dalam format JSON.
Ini adalah versi terbaru dari Push API. Peningkatan pada versi v4 meliputi:
- Menggunakan HTTP Basic Authentication untuk otorisasi akses. Dengan cara ini, semua permintaan API dapat dilakukan menggunakan alat HTTP umum, seperti: curl, plug-in browser, dan lainnya.
- Konten push sepenuhnya dalam format JSON.
Batas Frekuensi Permintaan
API kami menerapkan batas frekuensi panggilan untuk menjaga stabilitas dan keadilan layanan. Batas QPS (Queries Per Second) untuk setiap AppKey adalah:
- Batas Standar: Maksimal 500 permintaan per detik.
- Batas Lanjutan: Jika Anda adalah pelanggan paket berbayar dan AppKey Anda membutuhkan batas QPS lebih tinggi, silakan hubungi tim bisnis kami: Sales@engagelab.com.
Metode Permintaan
POST
Alamat Endpoint
Alamat layanan antarmuka sesuai dengan pusat data yang dipilih. Silakan pilih alamat endpoint yang sesuai dengan pusat data aplikasi Anda.
Saat ini, EngageLab menyediakan dua pusat data, dan data antar pusat data benar-benar terpisah. Pilih alamat endpoint sesuai pusat data yang dipilih saat membuat produk.
POST v4/push
Validasi Permintaan
Untuk informasi lebih lanjut, lihat ringkasan REST API pada Metode Autentikasi.
Contoh Permintaan
Header Permintaan
> POST /v4/push HTTP/1.1
> Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==
Body Permintaan
{
"from": "push",
"to": "all",
"body": {
"platform": "all",
"notification": {
"alert" :"Hello, Push!",
"android": {
"alert": "Hi, Push!",
"title": "Kirim ke Android",
"builder_id": 1,
"extras": {
"newsid": 321
}
},
"ios": {
"alert": "Hi, MTPush!",
"sound": "default",
"badge": "+1",
"extras": {
"newsid": 321
}
}
},
"options": {
"time_to_live": 60,
"apns_production": false
}
},
"request_id": "12345678",
"custom_args":{
"Engagelab": "push untuk Anda"
}
}'
> POST /v4/push HTTP/1.1
> Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==
Parameter Permintaan
Struktur parameter push dijelaskan pada tabel berikut:
| Kata Kunci | Tipe | Opsi | Makna |
|---|---|---|---|
| from | String | Opsional | Pengirim layanan saat ini |
| to | String/JSON | Wajib | Target pengiriman |
| body | JSON Object | Wajib | Body permintaan pengiriman |
| platform | String/Array | Wajib | Platform Push |
| notification | JSON Object | Opsional | |
| message | JSON Object | Opsional | |
| options | JSON Object | Opsional | Parameter push |
| request_id | String | Opsional | Field opsional untuk mengidentifikasi permintaan pada respons. |
| custom_args | JSON Object | Opsional | Field opsional yang dikembalikan pada callback. Maksimal 128 karakter. |
from
Pengirim layanan saat ini, tipe String, field opsional.
Contoh Permintaan
{
"from":"push"
}
to
Objek Perangkat Push, menunjukkan daftar perangkat yang dapat dikirimi push. Penentuan target perangkat push bisa menggunakan alias, tag, registration ID, subgroup, broadcast, dan lainnya.
Target Push
Beberapa cara memilih perangkat selain broadcast:
| Kata Kunci | Tipe | Makna | Deskripsi | Catatan |
|---|---|---|---|---|
| all | String | Broadcast | Push ke semua perangkat | Target push adalah perangkat aktif dalam 365 hari terakhir. |
| tag | JSON Array | Tag | Array. Relasi antar tag adalah OR (gabungan). | Segmentasi perangkat atau pengguna dalam skala besar. |
| tag_and | JSON Array | Tag AND | Array. Tag saling AND (irisan). | Maksimal 20 tag per push. |
| tag_not | JSON Array | Tag NOT | Array. Gabungan beberapa label lalu diambil komplemennya. | Maksimal 20 tag per push. |
| alias | JSON Array | Alias | Array. Alias adalah OR (gabungan). | Identifikasi pengguna dengan alias. |
| registration_id | JSON Array | Registration ID | Array. Registration ID adalah OR (gabungan). | Identifikasi perangkat. Maksimal 1000 per push. |
| live_activity_id | String | ID Aktivitas Real-time | Sesuai liveActivityId di SDK iOS. | Wajib saat memperbarui aktivitas real-time. |
| seg | JSON | ID Grup Pengguna | ID grup pengguna yang dibuat di halaman. | Saat ini hanya bisa satu per push. |
Hubungan implisit antar beberapa nilai dalam array adalah OR (gabungan); namun tag_and adalah AND (irisan).
Jika tag_not digunakan sendiri, maka pemrosesan tag_not dilakukan di antara pengguna broadcast.
Tipe-tipe ini dapat digunakan bersamaan. Hubungan implisit antar beberapa polynomial saat bersamaan adalah AND (irisan). Contoh:
"to" : {"tag" : [ "tag1", "tag2"], "tag_and" : ["tag3", "tag4"], "tag_not" : ["tag5", "tag6"] }
Hitung hasil field "tag" terlebih dahulu tag1 atau tag2 = A;
Lalu hitung hasil field "tag_and" tag3 dan tag4 = B;
Lalu hitung hasil field "tag_not" bukan (tag5 atau tag6) = C;
Hasil akhir dari "to" adalah A dan B dan C .
Contoh
- Push ke semua perangkat (broadcast):
{
"to": "all",
}
- Push ke beberapa tag (cukup salah satu tag): di Shenzhen, Guangzhou, atau Beijing
{
"to":{
"tag":[
"Shenzhen",
"Guangzhou",
"Beijing"
]
}
}
- Push ke beberapa tag (harus memenuhi semua tag): di Shenzhen dan "perempuan"
{
"to":{
"tag_and":[
"Shenzhen",
"female"
]
}
}
- Push ke beberapa alias:
{
"to":{
"alias":[
"4314",
"892",
"4531"
]
}
}
- Push ke beberapa registration ID:
{
"to": {
"registration_id": [
"4312kjklfds2",
"8914afd2",
"45fdsa31"
]
}
}
- Push ke beberapa tipe target sekaligus: di Shenzhen atau Guangzhou dan "perempuan" "anggota"
{
"to":{
"tag":[
"Shenzhen",
"Guangzhou"
],
"tag_and":[
"female",
"members"
]
}
}
- Push pesan live activity
{
"to": {
"live_activity_id": "LiveActivity-1"
}
}
Push ke ID segmentasi pengguna:
{
"to": {
"seg": {
"id":"segid"
}
}
}
Body
Body permintaan push. Field yang didukung sebagai berikut:
| Kata Kunci | Tipe | Opsi | Makna |
|---|---|---|---|
| platform | String/Array | Wajib | Platform push |
| notification | JSON Object | Opsional | |
| message | JSON Object | Opsional | |
| live_activity | JSON Object | Opsional | |
| options | JSON Object | Opsional | Parameter push |
Platform
MTPush mendukung push ke Android, iOS, dan HarmonyOS. Kata kuncinya: "android", "ios", "hmos".
Jika target platform adalah iOS, Anda harus mengatur lingkungan push melalui field apns_production di options. true berarti push ke lingkungan produksi, false berarti ke lingkungan pengembangan.
Push ke semua platform:
{ "platform" : "all" }
Pilih platform tertentu:
{
"platform": [
"android",
"ios",
"hmos"
]
}
Notification
Objek "Notification" adalah salah satu entitas konten push (satunya lagi "Message"), dikirim ke klien sebagai notifikasi.
| Kata Kunci | Tipe | Opsi | Makna | Deskripsi |
|---|---|---|---|---|
| alert | String/JSON | Wajib | Konten | Isi pesan. Jika alert tidak diisi di bawah android/ios, maka digunakan alert di sini. |
| android | JSON Object | Opsional | Properti android | Parameter push Android, lihat deskripsi android |
| ios | JSON Object | Opsional | Properti ios | Parameter push iOS, lihat deskripsi ios |
| hmos | JSON Object | Opsional | Properti hmos | Parameter push HarmonyOS, lihat deskripsi hmos |
Alert
Properti "alert" di sini (langsung di bawah notification) adalah shortcut. Jika pesan alert sama di semua platform, cukup di sini. Jika ada di tiap platform, maka menimpa yang di sini.
{
"notification" : {
"alert" : "Hello, Push!"
}
}
Objek notification di atas akan dikirim ke semua platform yang ditentukan oleh "platform" dan semua akan menerima pesan notifikasi yang sama.
Android
Notifikasi di Android ditampilkan oleh MTPush SDK sesuai gaya notifikasi bar. Field yang didukung:
| Kata Kunci | Tipe Data | Opsional | Makna | Deskripsi |
|---|---|---|---|---|
| alert | String/JSON | Wajib | Konten Notifikasi | |
| title | String | Opsional | Judul Notifikasi | |
| builder_id | Int | Opsional | ID Gaya Notifikasi Bar | Android SDK dapat mengatur layout notifikasi custom, field ini menentukan gaya yang digunakan. |
| channel_id | String | Opsional | ID Channel Notifikasi Android | Maksimal 1000 byte, mulai Android 8.0, Anda dapat mengatur Notification Channels. |
| priority | Int | Opsional | Prioritas Tampilan Notifikasi Bar | Default 0, rentang -2 sampai 2. |
| category | String | Opsional | Filter atau Urutan Notifikasi Bar | Bergantung pada strategi produsen perangkat. |
| style | Int | Opsional | Tipe Gaya Notifikasi Bar | Default 0. 1=bigText, 2=Inbox, 3=bigPicture |
| big_text | String | Opsional | Gaya Notifikasi Bar Big Text | |
| inbox | JSONObject | Opsional | Gaya Notifikasi Bar Item Teks | {"box0":"konten1"}. |
| big_pic_path | String | Opsional | Gaya Notifikasi Bar Gambar Besar | |
| extras | JSON Object | Opsional | Field Tambahan | Definisikan Key/Value custom dalam format JSON untuk kebutuhan bisnis. |
| intent | JSON Object | Opsional | Tentukan Halaman Tujuan Navigasi | Gunakan intent untuk menentukan halaman tujuan saat notifikasi diklik. Disarankan isi field ini. Mendukung tiga tipe:intent:#Intent;action=action path;component=nama paket/nama activity lengkap;endintent:#Intent;action=android.intent.action.MAIN;endscheme://test?key1=val1&key2=val2 |
| large_icon | String | Opsional | Ikon Notifikasi Besar | |
| small_icon | String | Opsional | Ikon Notifikasi Kecil | |
| sound | String | Opsional | Suara | |
| badge_add_num | Int | Opsional | Tambahan Badge | |
| badge_set_num | Int | Opsional | Setel Nilai Badge | |
| badge_class | String | Opsional | Kelas Activity Entry Aplikasi | |
| display_foreground | String | Opsional | Tampilkan notifikasi saat app foreground | |
| group_id | String | Opsional | ID Grup Pesan | Penanda unik pengelompokan pesan, untuk collapse pesan. Didukung mulai MTPush Android SDK v5.0.1. |
{
"notification": {
"android": {
"alert": "hello, MTPush!",
"title": "Tes Push",
"builder_id": 3,
"style": 1,
"big_text": "isi big text",
"inbox":JSONObject,
"big_pic_path": "url gambar",
"priority": 0,
"category": "kategori string",
"large_icon": "http://pushapi-sgp.engagelab.comlargeIcon.jpg",
"small_icon": "http://www.small.com/small_icon.jpg",
"intent": {
"url": "intent:#Intent;component=push.pushapi-sgp.engagelab.com/com.example.mtpushdemo.SettingActivity;end"
},
"extras": {
"news_id": 134,
"my_key": "nilai"
}
}
}
}
iOS
Notifikasi APNs di iOS.
Konten notifikasi dikirim oleh MTPush ke server Apple APNs dan ditampilkan di perangkat iOS sebagai notifikasi sistem.
Field notifikasi sesuai spesifikasi APNs dan mendukung:
| Kata Kunci | Tipe | Opsi | Makna | Deskripsi |
|---|---|---|---|---|
| alert | String/JSON | Wajib | Isi notifikasi | |
| sound | String/JSON | Opsional | Suara notifikasi | |
| badge | Int/String | Opsional | Penanda badge aplikasi | |
| content-available | Boolean | Opsional | Push untuk membangunkan | "content-available":true artinya Background Remote Notification, jika tidak, Remote Notification biasa. |
| mutable-content | Boolean | Opsional | Ekstensi notifikasi | Fitur Notification Service Extension di iOS 10 untuk status pengiriman tiap pesan APNs, butuh implementasi Service Extension interface di klien dan gunakan field mutable-content di server. |
| category | String | Opsional | Hanya didukung di iOS 8. Isi field "category" di payload APNs. | |
| extras | JSON Object | Opsional | Field tambahan | Informasi Key/value custom untuk kebutuhan bisnis. |
| thread-id | String | Opsional | Grup notifikasi | Notifikasi remote iOS dikelompokkan berdasarkan property ini. |
| interruption-level | String | Opsional | Level gangguan notifikasi | Untuk iOS 15, level: active,critical,passive,timeSensitive, lihat: UNNotificationInterruptionLevel。 |
Notifikasi iOS untuk MTPush diteruskan ke server APNs. Panjang notifikasi MTPush dibatasi 4000 byte. MTPush menggunakan encoding utf-8, satu karakter Tionghoa = 3 byte.
Contoh pengiriman server:
{
"notification": {
"ios": {
"alert": "hello, Push!",
"sound": "sound.caf",
"badge": 1,
"extras": {
"news_id": 134,
"my_key": "nilai"
}
}
}
}
Pesan yang diterima klien:
{
"_j_msgid" = 813843507;
aps = {
alert = "hello,Push!";
badge = 1;
sound = "sound.caf";
};
"my_key" = "nilai";
"news_id" = 134;
}
hmos
Notifikasi di HarmonyOS ditampilkan oleh MTPush SDK sesuai gaya notifikasi bar. Field yang didukung:
| Kata Kunci | Tipe | Opsi | Makna | Deskripsi |
|---|---|---|---|---|
| alert | String | Wajib | Isi notifikasi | Menimpa alert parent jika diisi. Kosong menyembunyikan dari notifikasi bar. Lihat Batas Push. |
| title | String | Opsional | Judul notifikasi | Menggantikan nama aplikasi jika diisi. Lihat Batas Push. |
| category | String | Wajib | Kategori pesan | Wajib oleh vendor. Ikuti standar kategori pesan Harmony. |
| large_icon | String | Opsional | Ikon besar | Hanya URL HTTPS, misal https://contoh.com/image.png. ≤30KB, width*height < 12800 pixel. |
| intent | JSONObject | Wajib | Target navigasi | Tiga tipe didukung: 1) Beranda aplikasi: action.system.home 2) Deeplink: scheme://host?key=val 3) Action: com.test.action. Contoh: {"url":"action.system.home"}. |
| badge_add_num | Int | Opsional | Tambahan badge | Jika tidak diisi, badge tidak berubah. Rentang 1-99. Ditambah ke badge saat ini. |
| badge_set_num | Int | Opsional | Set nilai badge | Jika tidak diisi, badge tidak berubah. Rentang 0-99. Badge di-set ke nilai tetap. |
| test_message | Boolean | Opsional | Penanda pesan uji | false: normal (default); true: pesan uji. |
| receipt_id | String | Opsional | ID receipt Huawei | ID unik untuk konfigurasi receipt Harmony downlink. |
| extras | JSON | Opsional | Field tambahan | JSON custom K/V untuk bisnis. |
| style | Int | Opsional | Gaya notifikasi | Default 0. 0: normal; 3: multi-line text. |
| inbox_content | [String] | Opsional | Konten multi-line text | Wajib jika style=3. Maks 3 item. Tiap item ≤1024 karakter; dipotong dengan “…”. |
| push_type | Int | Opsional | Tipe push | Default 0. Didukung: 0-notifikasi, 2-notifikasi lanjutan, 10-VoIP call. Lainnya tidak valid. |
| extra_data | String | Opsional | Data tambahan | Mapping ke Huawei extraData. Wajib jika push_type=2 atau 10; diabaikan jika push_type=0. |
| display_foreground | String | Opsional | Tampilkan notifikasi saat app foreground | "1": tampilkan; "0": tidak tampilkan. |
Contoh:
{
"notification": {
"hmos": {
"alert": "Hi, MTPush!",
"title": "",
"category": "",
"intent": {"url": ""},
"badge_add_num": 1,
"test_message": true,
"receipt_id": "",
"extras": {},
"style": 0,
"inbox_content": [],
"push_type": 0,
"extra_data": "",
"display_foreground": "1"
}
}
}
Message
Pesan dalam aplikasi (pesan custom, pesan pass-through).
- Tidak tampil di notifikasi bar, SDK MTPush menerima pesan dan meneruskannya ke aplikasi.
- iOS menerima bagian ini melalui channel pesan in-app push (bukan APNS) saat aplikasi di foreground.
Field yang didukung:
| Kata Kunci | Tipe | Opsi | Makna |
|---|---|---|---|
| msg_content | String/JSON | Wajib | Isi pesan |
| title | String | Opsional | Judul pesan |
| content_type | String | Opsional | Tipe konten |
| extras | JSON Object | Opsional | Parameter opsional JSON |
| test_message | Boolean | Opsional | Penanda pesan uji, untuk HarmonyOS |
| receipt_id | String | Opsional | ID receipt Huawei, untuk HarmonyOS |
Contoh:
{
"message": {
"msg_content": "Hi,Push",
"content_type": "text",
"title": "msg",
"extras": {
"key": "value"
}
}
}
Live_activity
Catatan: Pesan aktivitas real-time membutuhkan sertifikat iOS P8, yang sesuai dengan memilih "Konfigurasi Autentikasi Token" di Pengaturan metode autentikasi iOS WebPortal.
Body pesan aktivitas real-time mencakup field berikut:
| Kata Kunci | Tipe | Opsi | Deskripsi |
|---|---|---|---|
| ios | JSON Object | Wajib | Untuk detail field, lihat bagian iOS JSON Object. |
iOS JSON Object
| Kata Kunci | Tipe | Opsi | Deskripsi |
|---|---|---|---|
| event | string | Wajib | Pembuatan: "start", Update: "update", Akhir: "end"; wajib saat event=start |
| attributes-type | string | Opsional | Tipe aktivitas real-time, nilai developer; wajib saat event=start |
| content-state | JSON Object | Wajib | Konten dinamis aktivitas real-time, sesuai nilai SDK klien (content-state Apple). |
| alert | JSON Object | Opsional | Lihat iOS alert JSON Object untuk detail. |
| dismissal-date | int | Opsional | Waktu tampil akhir aktivitas real-time. |
| attributes | JSON Object | Opsional | Konten statis aktivitas real-time, sesuai nilai SDK klien (attributes Apple). |
| stale-date | int | Opsional | Waktu kedaluwarsa aktivitas real-time; jika kurang dari waktu saat ini, aktivitas tidak akan diperbarui. |
| relevance-score | int | Opsional | Prioritas tampil aktivitas real-time di Dynamic Island, nilai 1-100, makin tinggi makin penting; default tertinggi jika tidak diisi. |
| apns-priority | int | Opsional | 5 atau 10, default 10; notifikasi dengan apns-priority=5 tidak mengurangi rate limit Apple, jika melebihi limit maka notifikasi dibatasi. |
iOS alert JSON Object
| Kata Kunci | Tipe | Opsi | Deskripsi |
|---|---|---|---|
| title | string | Opsional | Judul di Apple Watch. |
| body | string | Opsional | Isi di Apple Watch. |
| sound | string | Opsional | Suara notifikasi. |
- Pesan aktivitas real-time iOS untuk Engagelab Push diteruskan ke server Apple. Apple membatasi data update dinamis aktivitas real-time (ActivityKit) maksimal 4096 byte.
- Engagelab Push membatasi total panjang parameter "live_activity" untuk "iOS": { } maksimal 3584 byte. JPush memakai encoding UTF-8, satu karakter Tionghoa = 3 byte.
Contoh Push Aktivitas Real-time
attributes-type dan live_activity_id untuk aktivitas real-time dilaporkan dari SDK developer. Sebelum menggunakan aktivitas real-time, token push-to-start dan update-token perangkat harus dilaporkan. Lihat instruksi aktivitas real-time Apple.
Membuat
{ "from": "push", "to": { "registration_id": [ "161a3797c816b134042" ] }, "body": { "platform": "ios", "live_activity": { "ios": { "event": "start", "content-state": { "eventStr": "hello", "eventTime":1685952000 }, "attributes": { "name": "1", "number": 2, "tag": "mytag" }, "alert": { "title": "hello", "body": "welcome" }, "attributes-type": "my_la_type", "relevance-score": 100, "apns-priority": 100 } } }, "request_id": "12345678", "custom_args": "12345678" }{ "from": "push", "to": { "registration_id": [ "161a3797c816b134042" ] }, "body": { "platform": "ios", "live_activity": { "ios": { "event": "start", "content-state": { "eventStr": "hello", "eventTime":1685952000 }, "attributes": { "name": "1", "number": 2, "tag": "mytag" }, "alert": { "title": "hello", "body": "welcome" }, "attributes-type": "my_la_type", "relevance-score": 100, "apns-priority": 100 } } }, "request_id": "12345678", "custom_args": "12345678" }Tampilkan blok kode ini di jendela mengambangMemperbarui
{ "from": "push", "to": { "live_activity_id": "my_la_id" }, "body": { "platform": "ios", "live_activity": { "ios": { "event": "update", "content-state": { "eventStr": "test_live", "eventTime": 198 }, "alert": { "title": "123411", "body": "123411" } } } }, "request_id": "12345678", "custom_args": "12345678" }{ "from": "push", "to": { "live_activity_id": "my_la_id" }, "body": { "platform": "ios", "live_activity": { "ios": { "event": "update", "content-state": { "eventStr": "test_live", "eventTime": 198 }, "alert": { "title": "123411", "body": "123411" } } } }, "request_id": "12345678", "custom_args": "12345678" }Tampilkan blok kode ini di jendela mengambang
Voip
Fungsi VOIP iOS. Tipe ini tidak bisa bersamaan dengan tipe pesan iOS lain. Lihat struktur parameter permintaan:
{
"from": "push",
"to": {
"registration_id": [ "1a0018970a91da03de5" ]
},
"request_id": "12345",
"custom_args": "12345",
"body": {
"platform": "ios",
"voip": {
"key": "value // Key/value custom apa pun yang akan diteruskan ke APP"
}
}
}
Options
Opsi notifikasi push saat ini meliputi:
| Kata Kunci | Tipe | Opsi | Makna | Deskripsi |
|---|---|---|---|---|
| time_to_live | Int/String | Opsional | Waktu retensi pesan offline (detik) | Jika pengguna offline saat push, pesan bisa disimpan dan dikirim ulang saat online. Default 86400 (1 hari), maksimal 15 hari. Jika batas operator lebih kecil, gunakan maksimal operator. Jika 0, pesan offline tidak disimpan; hanya pengguna online saat push yang menerima pesan. |
| override_msg_id | Long | Opsional | ID pesan yang akan dioverride | Untuk menimpa push sebelumnya, masukkan msg_id push sebelumnya. Fitur override berlaku 1 hari. Jika msg_id tidak ada dalam waktu itu, error 7006, dan pesan tidak dikirim. Hanya untuk Android dan channel tertentu. |
| apns_production | Boolean | Opsional | Lingkungan produksi APNs | Hanya untuk Notifikasi iOS. |
| apns_collapse_id | String | Opsional | ID untuk update notifikasi iOS | Jika notifikasi APNs baru sama dengan notifikasi di Notification Center dengan apns-collapse-id yang sama, konten baru akan memperbarui notifikasi tersebut. Maksimal 64 byte. |
| big_push_duration | Int | Opsional | Durasi push bertahap (menit) | Slow push, mendistribusikan push ke pengguna target selama n menit; maksimal 1440. |
| multi_language | json object | Opsional | Pengaturan push multibahasa | Pengaturan konten push multibahasa, lihat multi_language untuk detail. |
| third_party_channel | JSON Object | Opsional | Konfigurasi channel produsen Android | Parameter untuk channel produsen, lihat third_party_channel untuk detail. |
| classification | Int | Opsional | Pengaturan klasifikasi pesan push | EngageLab tidak menilai tipe pesan yang ditentukan. Jika tidak diisi, default 0. 0: Pesan operasional. 1: Pesan sistem. |
| voice_value | String | Opsional | Nilai file suara | Parameter dipisahkan koma, '#' untuk parsing; jika tidak, cocokkan file bahasa default. Bahasa didukung: "en", "zh-Hans", "zh-Hant". Jika bahasa push tidak cocok, konten tidak diubah ke broadcast suara. |
| enhanc_message | Bool | Opsional | Aktifkan tampilan pesan dalam aplikasi | true - aktifkan; false - nonaktifkan. Jika izin notifikasi dimatikan, fitur ini akan menampilkan konten pesan notifikasi bar sebagai pesan dalam aplikasi saat pengguna menjalankan aplikasi di foreground. Default false dan hanya aktif jika diaktifkan eksplisit. |
| plan_id | String | Opsional | Penanda Rencana Push | Harus buat penanda rencana terlebih dahulu. Bisa di konsol atau API. |
| cid | String | Opsional | Penanda permintaan push, mencegah push duplikat | Hanya huruf, angka, underscore, dan minus, maksimal 64 karakter. Harus unik di bawah AppKey yang sama.Cara Menghindari Push Duplikat |
| auto_truncation | bool | Opsional | Apakah otomatis memotong pesan yang terlalu panjang untuk channel vendor | Default true. Jika body pesan ke channel vendor terlalu panjang, otomatis dipotong. Jika tidak ingin dipotong, isi false. |
Multi_language
Field ini untuk fitur push multibahasa dari EngageLab Push. Anda bisa mengirim konten notifikasi yang disesuaikan untuk pengguna dengan bahasa berbeda. Dengan menentukan beberapa bahasa beserta konten pesan, judul, dan subtitle iOS pada permintaan push, Anda dapat mengirim notifikasi push yang sesuai dengan pengaturan bahasa pengguna.
Parameter Permintaan
| Kata Kunci | Tipe | Opsi | Makna | Deskripsi |
|---|---|---|---|---|
| en | string | Opsional | Kode bahasa | Sesuai bahasa pengguna, lihat lampiran kode bahasa. |
| content | string | Opsional | Isi pesan | Mengganti data di notification.android.alert, notification.ios.alert, notification.web.alert, dan message.msg_content sesuai bahasa pengguna. |
| title | string | Opsional | Judul pesan | Mengganti data di notification.android.title, notification.ios.alert, notification.web.title, dan message.title sesuai bahasa pengguna. |
| ios_subtitle | string | Opsional | Subtitle iOS | Mengganti data di notification.ios.alert sesuai bahasa pengguna. |
- Catatan HarmonyOS: Untuk HarmonyOS, gunakan
third_party_channel.hmos.distribution_new. Tidak terpengaruh oleh konfigurasi global.
Contoh Permintaan
Metode HTTP: POST
URL Permintaan: /v4/grouppush atau /v4/push
Format Data Permintaan: JSON
Contoh Permintaan:
{
"options": {
"multi_language": {
"en": {
"content": "",
"title": "",
"ios_subtitle": ""
}
}
}
}
Contoh Respons
Respons Berhasil:
{
}
Respons Gagal:
{
"code": 400,
"data": "",
"message": "Pesan Error"
}
Third_party_channel
Field ini digunakan untuk mengisi informasi personalisasi channel produsen Android, key mendukung channel: xiaomi, huawei, meizu, oppo, vivo, fcm, honor, hmos. Bisa ada satu atau lebih bersamaan, KEY tiap vendor dapat berisi opsi berikut:
Parameter Permintaan
| Kata Kunci | Tipe | Opsi | Makna | Deskripsi |
|---|---|---|---|---|
| distribution_new | String | Wajib | _ | Jika Engagelab dan channel vendor bersamaan, atur prioritas downlink. |
| channel_id | String | Opsional | Kategori pesan notifikasi bar | channel_id juga tersedia di Android. Jika field ini diisi, akan diutamakan; jika tidak, gunakan android.channel_id.category dan notify_level di bawah. |
| classification | Int | Opsional | Kategori pesan notifikasi bar | Kategori pesan notifikasi bar produsen vivo, default 0. |
| pushMode | Int | Opsional | Mode push vivo | Default 0. Lihat pushMode vivoUntuk push uji, harus atur ID perangkat uji di backend vivo. |
| importance | String | Opsional | Klasifikasi cerdas pesan notifikasi Huawei/Glory | Untuk adaptasi klasifikasi cerdas notifikasi bar Huawei, sesuai field importance Huawei, default "NORMAL", lihat: Klasifikasi pesan Huawei。 |
| urgency | String | Opsional | Prioritas pesan custom vendor Huawei | Untuk adaptasi prioritas pesan custom vendor Huawei. |
| category | String | Opsional | Logo skenario pesan custom vendor Huawei | Untuk adaptasi kebutuhan notifikasi Huawei, vivo, dan OPPO, field ini untuk identifikasi tipe pesan "cloud notification", menentukan metode alert, dan percepat pengiriman tipe pesan tertentu. |










