logoDokumen
Cari

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
              
              POST v4/push

            
Tampilkan blok kode ini di jendela mengambang

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==
              
              > POST /v4/push HTTP/1.1
> Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==

            
Tampilkan blok kode ini di jendela mengambang

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==
              
              {
    "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==

            
Tampilkan blok kode ini di jendela mengambang

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
  • Isi notifikasi, yaitu konten yang dikirim ke klien.
  • Harus salah satu dengan message; tidak bisa bersamaan.
  • message JSON Object Opsional
  • Isi pesan, yaitu konten yang dikirim ke klien.
  • Harus salah satu dengan notification; tidak bisa bersamaan.
  • 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" }
                  
                  {
        "from":"push"
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

    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.
  • Maksimal 20 tag per push.
  • Kombinasi tag: huruf (case sensitive), angka, underscore, karakter Tionghoa.
  • Panjang tag maksimal 40 byte (UTF-8).
  • 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.
  • Satu perangkat hanya bisa satu alias, dan sebaliknya.
  • Maksimal 1000 alias per push.
  • Kombinasi alias: huruf (case sensitive), angka, underscore, karakter Tionghoa.
  • Panjang alias maksimal 40 byte (UTF-8).
  • 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", }
                  
                  {
      "to": "all",
    }
    
                
    Tampilkan blok kode ini di jendela mengambang
    • Push ke beberapa tag (cukup salah satu tag): di Shenzhen, Guangzhou, atau Beijing
    { "to":{ "tag":[ "Shenzhen", "Guangzhou", "Beijing" ] } }
                  
                  {
        "to":{
            "tag":[
                "Shenzhen",
                "Guangzhou",
                "Beijing"
            ]
        }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang
    • Push ke beberapa tag (harus memenuhi semua tag): di Shenzhen dan "perempuan"
    { "to":{ "tag_and":[ "Shenzhen", "female" ] } }
                  
                  {
        "to":{
            "tag_and":[
                "Shenzhen",
                "female"
            ]
        }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang
    • Push ke beberapa alias:
    { "to":{ "alias":[ "4314", "892", "4531" ] } }
                  
                  {
        "to":{
            "alias":[
                "4314",
                "892",
                "4531"
            ]
        }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang
    • Push ke beberapa registration ID:
    { "to": { "registration_id": [ "4312kjklfds2", "8914afd2", "45fdsa31" ] } }
                  
                  {
      "to": {
        "registration_id": [
          "4312kjklfds2",
          "8914afd2",
          "45fdsa31"
        ]
      }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang
    • Push ke beberapa tipe target sekaligus: di Shenzhen atau Guangzhou dan "perempuan" "anggota"
    { "to":{ "tag":[ "Shenzhen", "Guangzhou" ], "tag_and":[ "female", "members" ] } }
                  
                  {
        "to":{
            "tag":[
                "Shenzhen",
                "Guangzhou"
            ],
            "tag_and":[
                "female",
                "members"
            ]
        }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang
    • Push pesan live activity
    { "to": { "live_activity_id": "LiveActivity-1" } }
                  
                    {
          "to": {
              "live_activity_id": "LiveActivity-1"
          }
      }
    
                
    Tampilkan blok kode ini di jendela mengambang

    Push ke ID segmentasi pengguna:

    { "to": { "seg": { "id":"segid" } } }
                  
                  {
      "to": {
        "seg": {
          "id":"segid"
        }
      }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

    Body

    Body permintaan push. Field yang didukung sebagai berikut:

    Kata Kunci Tipe Opsi Makna
    platform String/Array Wajib Platform push
    notification JSON Object Opsional
  • Isi notifikasi, yaitu konten yang dikirim ke klien.
  • Harus salah satu dengan message; tidak bisa bersamaan.
  • message JSON Object Opsional
  • Isi pesan, yaitu konten yang dikirim ke klien.
  • Harus salah satu dengan notification; tidak bisa bersamaan.
  • live_activity JSON Object Opsional
  • Isi pesan aktivitas real-time.
  • Harus salah satu dengan notification atau message; tidak bisa bersamaan.
  • 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" }
                  
                  { "platform" : "all" }
    
                
    Tampilkan blok kode ini di jendela mengambang

    Pilih platform tertentu:

    { "platform": [ "android", "ios", "hmos" ] }
                  
                  {
      "platform": [
        "android",
        "ios",
        "hmos"
      ]
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

    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!" } }
                  
                  {
      "notification" : {
        "alert" : "Hello, Push!"
      }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

    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
  • Jika diisi, menimpa alert di parent.
  • String kosong tidak tampil di notifikasi bar.
  • Lihat Batas Push.
  • title String Opsional Judul Notifikasi
  • Jika diisi, menggantikan nama aplikasi di notifikasi.
  • Lihat Batas Push.
  • 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
  • Untuk style = 1, konten ditampilkan sebagai big text.
  • Didukung ROM API 16 ke atas.
  • inbox JSONObject Opsional Gaya Notifikasi Bar Item Teks
  • Untuk style = 2, maksimal 5 item, tiap item 1024 karakter. Contoh: {"box0":"konten1"}.
  • Didukung ROM API 16 ke atas.
  • big_pic_path String Opsional Gaya Notifikasi Bar Gambar Besar
  • Untuk style = 3, dukung JPEG (hanya FCM), .BMP (hanya FCM), .jpg, .png.
  • Dukung URL gambar, path lokal (relatif di SD card).
  • Didukung ROM API 16 ke atas.
  • Ukuran gambar maksimal 1MB.
  • 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:
  • Ke halaman tujuan: intent:#Intent;action=action path;component=nama paket/nama activity lengkap;end
  • Ke halaman utama: intent:#Intent;action=android.intent.action.MAIN;end
  • Ke deeplink: scheme://test?key1=val1&key2=val2
  • large_icon String Opsional Ikon Notifikasi Besar
  • Ukuran ikon maksimal 300 KB.
  • Dukung URL gambar, path lokal.
  • small_icon String Opsional Ikon Notifikasi Kecil
  • Ikon kecil, path bisa URL gambar, maksimal 300 KB.
  • Jika small_icon_uri tidak diisi, gunakan field ini.
  • sound String Opsional Suara
  • Isi nama file suara di /res/raw/ proyek Android tanpa ekstensi.
  • Catatan: Untuk Android 8.0 ke atas, atribut ini tidak berlaku jika channel_id diisi.
  • badge_add_num Int Opsional Tambahan Badge
  • Hanya untuk Huawei EMUI 8.0 ke atas, Xiaomi MIUI 6 ke atas, dan vivo dengan channel produsen.
  • Jika tidak diisi, badge tidak berubah (Xiaomi default +1).
  • Rentang nilai: 1-99.
  • badge_set_num Int Opsional Setel Nilai Badge
  • Jika tidak diisi, badge tidak berubah.
  • Rentang nilai: 0-99. Jika diatur, badge aplikasi selalu sesuai nilai ini.
  • badge_class String Opsional Kelas Activity Entry Aplikasi
  • Hanya untuk push channel Huawei. Jika diisi dengan Activity non-main, berlaku pembatasan produsen.
  • Untuk badge increment, wajib isi bersama badge_add_num.
  • display_foreground String Opsional Tampilkan notifikasi saat app foreground
  • "1": notifikasi tetap muncul di bar saat app foreground.
  • "0": tidak muncul.
  • Default: tetap muncul. Didukung mulai MTPush Android SDK v4.3.1.
  • 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" } } } }
                  
                  {
        "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"
                }
            }
        }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

    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
  • Menimpa alert di parent.
  • Kosong, tidak tampil di notifikasi bar.
  • Dukung string atau alert payload resmi struktur, berisi key seperti title dan subtitle.
  • sound String/JSON Opsional Suara notifikasi
  • Umum: String.
  • Jika tidak ada, tidak ada suara;
  • Jika diisi, suara dimainkan jika ditemukan, jika tidak, suara default.
  • Kosong: iOS 7 default sound, iOS 8+ tanpa suara.
  • Alert: JSON Object, dukung payload resmi berisi critical, name, volume.
  • badge Int/String Opsional Penanda badge aplikasi
  • Nilai N bisa N, +N, atau -N, rentang [0,99]. Jika badge 10, badge akan di-set ke N, 10+N, 10-N (default badge dibersihkan jika <0).
  • 0 atau kosong, badge dibersihkan.
  • Jika tidak diisi, badge tidak berubah.
  • SDK MTPush mengisi badge "+1" secara default.
  • 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.
  • true: Mendukung fitur UNNotificationServiceExtension iOS 10.
  • Jika tidak diisi, Remote Notification biasa dan tidak bisa dihitung data kedatangan.
  • 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" } } } }
                  
                  {
        "notification": {
            "ios": {
                "alert": "hello, Push!",
                "sound": "sound.caf",
                "badge": 1,
                "extras": {
                    "news_id": 134,
                    "my_key": "nilai"
                }
            }
        }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

    Pesan yang diterima klien:

    { "_j_msgid" = 813843507; aps = { alert = "hello,Push!"; badge = 1; sound = "sound.caf"; }; "my_key" = "nilai"; "news_id" = 134; }
                  
                  {
      "_j_msgid" = 813843507;
      aps =     {
      alert = "hello,Push!";
      badge = 1;
      sound = "sound.caf";
    };
    "my_key" = "nilai";
    "news_id" = 134;
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

    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" } } }
                  
                  {
      "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"
        }
      }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

    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" } } }
                  
                  {
      "message": {
        "msg_content": "Hi,Push",
        "content_type": "text",
        "title": "msg",
        "extras": {
          "key": "value"
        }
      }
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

    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 mengambang
    • Memperbarui

      { "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" } } }
                  
                  { 
        "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" 
            } 
        } 
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

    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.
  • true: Push ke produksi;
  • false: Push ke pengembangan.
  • Default: Jika "Certificate for development" aktif, default false. Jika tidak, default true. Sebaiknya selalu isi field ini.
  • 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": "" } } } }
                  
                     Metode HTTP: POST
       URL Permintaan: /v4/grouppush atau /v4/push
       Format Data Permintaan: JSON
       Contoh Permintaan:
       {
        "options": {
          "multi_language": {
            "en": {
              "content": "",
              "title": "",
              "ios_subtitle": ""
            }
          }
        }
       }
    
                
    Tampilkan blok kode ini di jendela mengambang
    Contoh Respons
    Respons Berhasil: { }
                  
                  Respons Berhasil:
    {
       
    }
    
                
    Tampilkan blok kode ini di jendela mengambang
    Respons Gagal: { "code": 400, "data": "", "message": "Pesan Error" }
                  
                  
    Respons Gagal:
    {   
        "code": 400,  
        "data": "",
      "message": "Pesan Error"
    }   
    
                
    Tampilkan blok kode ini di jendela mengambang

    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.
  • mtpush: push wajib ke channel Engagelab.
  • pns_mtpush: untuk kombinasi fcm+vendor domestik, push wajib ke Xiaomi/Huawei/Meizu/oppo/Vivo/Honor dulu, jika gagal baru ke Engagelab.
  • mtpush_pns: untuk kombinasi fcm+vendor domestik, push prioritas ke Engagelab, jika gagal baru ke vendor.
  • fcm_mtpush: untuk kombinasi fcm+vendor domestik, push wajib ke fcm dulu, jika gagal baru ke Engagelab.
  • mtpush_fcm: untuk kombinasi fcm+vendor domestik, push prioritas ke Engagelab, jika gagal baru ke fcm. ``_Catatan: Untuk empat strategi pns_mtpush/fcm_mtpush/mtpush_pns/mtpush_fcm, Jika perangkat hanya punya satu channel push (FCM atau vendor), strategi FCM dan vendor akan diabaikan, channel sistem yang tersedia akan digunakan.
  • channel_id String Opsional Kategori pesan notifikasi bar
  • Untuk adaptasi kategori notifikasi Xiaomi, Huawei, dan OPPO, developer harus mendaftar ke vendor terkait. Lihat: Panduan Kategori Notifikasi Vendor.
  • Catatan: Untuk aplikasi dengan data di China region untuk Huawei tidak mendukung field ini. Lihat Huawei Custom Notification Channels.
  • Field channel_id juga tersedia di Android. Jika field ini diisi, akan diutamakan; jika tidak, gunakan android.channel_id.
  • Penting: OPPO akan menerapkan aturan kategori notifikasi baru mulai 20 November 2024, disarankan isi field ini bersama field category dan notify_level di bawah.
  • classification Int Opsional Kategori pesan notifikasi bar Kategori pesan notifikasi bar produsen vivo, default 0.
  • 0: pesan operasional.
  • 1: pesan sistem. ``Vivo lebih ketat dalam klasifikasi pesan sistem, lihat: platform developer vivo untuk aturan detail.
  • pushMode Int Opsional Mode push vivo Default 0. Lihat pushMode vivoUntuk push uji, harus atur ID perangkat uji di backend vivo.
  • 0: Push resmi.
  • 1:Push uji.
  • 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
  • LOW: Pesan umum.
  • NORMAL: Pesan penting.
  • HIGH: Pesan sangat penting (hanya didukung Huawei)
  • urgency String Opsional Prioritas pesan custom vendor Huawei Untuk adaptasi prioritas pesan custom vendor Huawei.
  • HIGH: Pesan sangat penting, dapat memaksa aplikasi aktif saat pesan masuk.
  • NORMAL: Pesan penting. ``Untuk set "HIGH", harus mendaftar izin khusus ke Huawei, lihat:Cara mendaftar izin khusus
  • 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.
  • Lihat nilai dan deskripsi: <a href="https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/https
  • icon
    Hubungi Sales