Integrasi ini memungkinkan tim Anda untuk mengobrol dengan pelanggan melalui Saluran pesan apa pun melalui implementasi khusus.
Langkah 1: Buka Pengaturan > Saluran
Langkah 2: Klik Tambahkan Saluran > Saluran Kustom > Hubungkan
Langkah 3: Masukkan URL Webhook tujuan tempat pesan keluar akan dikirim.
Langkah 4: Pilih jenis ID untuk Saluran > klik Berikutnya
Jenis ID digunakan untuk identifikasi pengguna dan digunakan untuk berkomunikasi dengan server integrasi khusus Anda.
Ada dua jenis ID yang tersedia:
Nomor Telepon: Gunakan ini jika penyedia layanan pesan mengenali Kontak berdasarkan Nomor Telepon mereka.
Format contoh: +60177872890
ID Kustom: Gunakan ini jika penyedia layanan pesan mengenali Kontak berdasarkan ID yang dibuat khusus.
Panjang karakter maksimum adalah 50.
AZ
,az
,0-9
,_
,=
,+
,/
dan@
diperbolehkan.
Langkah 5: Dialog berikut akan memberikanID Saluran,Token API, danURL Webhookmisalnya
ID Saluran:gfd8g7fd89dgfd
Token API:aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd
Tautan webhook:https://app.respond.io/custom/channel/webhook/
Menggunakan jenis ID Nomor Telepon memungkinkan Anda memulai percakapan dan mengirim pesan pertama ke Kontak.
URL Webhookdigunakan untuk mengeposkanPesan,Gema Pesan, danTanda Terima Pesanke platform respond.io.
Kode yang disediakan akan memicu webhook pada respond.io, membuat Kontak jika perlu dan menyimpan pesan di bawah Kontak tersebut.
Contoh Pesan
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'otorisasi: Pembawa aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'kontrol-cache: tanpa-cache' \\
-H 'tipe-konten: aplikasi/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"jenis": "pesan",
"mId": "xcvzzxcxczxczxc",
"stempel waktu": 2132131321000,
"pesan": {
"jenis": "teks",
"teks": "Halo Dunia"
}
}
\],
"kontak": {
"namadepan": "John",
"namabelakang": "Doe",
"fotoprofil": "",
"kodenegara": "MY",
"email": "[email protected]",
"telepon": "+60177872890",
"bahasa": "en"
}
}'
Contoh untuk Pesan Gema
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'otorisasi: Pembawa aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'kontrol-cache: tanpa-cache' \\
-H 'tipe-konten: aplikasi/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"jenis": "pesan\_echo",
"mId": "xcvzzxcxczxczxc",
"stempel waktu": 2132131321000,
"pesan": {
"jenis": "teks",
"teks": "Halo Dunia"
}
}
\],
"kontak": {
"namadepan": "John",
"namabelakang": "Doe",
"fotoprofil": "",
"kodenegara": "MY",
"email": "[email protected]",
"telepon": "+60177872890",
"bahasa": "en"
}
}'
Contoh Tanda Terima Pesan
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'otorisasi: Pembawa aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'kontrol-cache: tanpa-cache' \\
-H 'tipe-konten: aplikasi/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"type": "message\_status",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"status": {
"value": "terkirim|terkirim|terbaca|gagal",
"message": "Kesalahan: Pengiriman gagal karena token tidak valid"
}
\]
}'
Bidang | Keterangan | Validasi |
---|---|---|
idsaluran | ID Saluran Unik | Diperlukan. Bidang yang unik. Dihasilkan oleh respond.io. |
idkontak | ID Kontak Unik | Diperlukan. ID kontak respond.io yang unik. Maksimal 50 karakter. |
jenis acara | Jenis Acara | Diperlukan. Jenis yang tersedia: pesan, gema_pesan, dan status_pesan. |
acara.mld | ID Pesan | Diperlukan. ID pesan unik. Maksimal 50 karakter. |
peristiwa.stempel waktu | Waktu Epoch UNIX (milidetik) | Diperlukan. Waktu kejadian yang memicu panggilan balik. |
peristiwa.jenis.pesan | Jenis Pesan | Diperlukan. Jenis pesan yang tersedia: teks, lampiran, lokasi, dan balasan cepat. Lihat bagian Jenis Pesan untuk contoh jenis pesan lainnya. |
peristiwa.pesan.teks | Pesan teks | Diperlukan. Panjang maksimal 7.000 karakter. |
peristiwa.status.nilai | Teks | Diperlukan jika event.type adalah message_status. Nilai status yang tersedia: terkirim, terkirim, terbaca, dan gagal. |
acara.status.pesan | Teks | Diperlukan jika events.status.value gagal. |
kontak.namadepan | Nama depan | Opsional. Maksimal 50 karakter. |
kontak.namabelakang | Nama belakang | Opsional. Maksimal 50 karakter. |
kontak.profilePic | URL Foto Profil | Opsional. Ukuran avatar tidak boleh lebih dari 100 kb. Direkomendasikan 720x720. |
kontak.lokal | Kode Lokal | Opsional. Lihat di sini untuk daftar nilai. |
kontak.kodenegara | Kode negara | Opsional. Kode negara 2 huruf - Kode ISO ALPHA-2. |
kontak.zonawaktu | Zona waktu | Opsional. (min: -24) (maks: 24). |
kontak.email | Alamat email | Opsional. Maksimal 50 karakter. |
kontak.telepon | Nomor telepon | Opsional. Maksimal 18 karakter. |
kontak.bahasa | Bahasa | Opsional. Standar ISO 639-1. |
Respons - Sukses (Status HTTP → 200)
"OKE"
respond.io akan memanggil titik akhir<API Base URL>/message
Pastikan Anda menerapkan kodePesan Keluarpada rute
/pesan
server web Anda.
Berikut adalah contoh cURL dari respond.io yang memanggil titik akhir:
curl -X POST \\
/pesan \\
-H 'otorisasi: Pembawa aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'kontrol-cache: tanpa-cache' \\
-H 'tipe-konten: aplikasi/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"pesan": {
"tipe": "teks",
"teks": "Halo Dunia"
}
}'
Respons - Sukses (Status HTTP → 200)
{
"ID m": "1640141607842"
}
Autentikasi perlu dilakukan di titik akhir sebelum mengirim pesan ke Penyedia Layanan Pesan.
Berikut'contoh penggunaan middleware ekspres untuk tujuan ini:
const {validationResult} = memerlukan('express-validator');
const validateToken = (permintaan, res, selanjutnya) => {
const apiToken = <>
const bearerToken = permintaan.headers.otorisasi;
jika (!bearerToken)
kembalikan res.kirim(401)
const token = bearerToken.substring(7, bearerToken.length);
jika (apiToken !== token) {
kembalikan res.kirim(401)
}
selanjutnya();
};
modul.ekspor = {
validateToken
};
Kami'telah menyertakan contoh Saluran Kustom yang dapat Anda uji di server Anda. Lihat proyek GitHub kami di sini.
Contoh untuk Teks
{
"type": "text",
"text": "Selamat datang di respond.io",
}
Bidang | Keterangan | Validasi |
---|---|---|
jenis | Jenis Pesan | Diperlukan. teks |
teks | Pesan teks | Diperlukan. Panjang maksimal 7.000 karakter. |
Contoh untuk File Media
{
"jenis": "lampiran",
"lampiran": {
"jenis": "gambar|video|audio|berkas",
"url": "https://abc/japan.png",
"mimeType": "gambar/png",
"namaberkas":"logo perusahaan.png",
"deskripsi": "logo perusahaan terkini"
}
}
Bidang | Keterangan | Validasi |
---|---|---|
jenis | Jenis Pesan | Diperlukan. lampiran. |
lampiran.jenis | Tipe Lampiran | Diperlukan. Jenis lampiran yang tersedia: gambar, video, audio dan berkas. |
lampiran.url | URL | Diperlukan. Maksimal 2.000 karakter. Pastikan itu adalah tautan publik sehingga pengguna atau kontak dapat melihat kontennya. |
lampiran.mimeType | Tipe Mime dari Lampiran | Opsional |
lampiran.namafile | Nama berkas | Opsional. Nama File harus menyertakan ekstensi. Maksimal 256 karakter (termasuk ekstensi file). Mengirim file tanpa ekstensi atau dengan ekstensi yang salah dapat menyebabkan kontak atau pengguna tidak dapat membuka file tersebut. |
lampiran.deskripsi | Deskripsi Berkas | Opsional. Maksimal 256 karakter. Hanya berlaku untuk attachment.type = image. |
Pastikan bahwa URL lampiran tidak diunduh secara paksa oleh browser. Header respons HTTP's Content-Disposition
seharusnya memiliki nilai default, yaitu inline
.
Contoh untuk Lokasi
{
"type": "location",
"latitude": 0.123456,
"longitude": -0.1234,
"address": "Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur"
}
Bidang | Keterangan | Validasi |
---|---|---|
jenis | Jenis Pesan | Diperlukan. lokasi. |
lintang | Koordinat | Diperlukan. Lintang (±90°) dalam rentang yang valid. |
garis bujur | Koordinat | Diperlukan. Bujur (±180°) dalam rentang yang valid. |
alamat | Lokasi Alamat | Opsional. Maksimal 256 karakter. |
Contoh untuk Balasan Cepat
{
"type": "quick\_reply",
"title": "Pilih bahasa yang Anda inginkan",
"replies": \[
"Melayu",
"Inggris"
\]
}
Bidang | Keterangan | Validasi |
---|---|---|
jenis | Jenis Pesan | Diperlukan. balasan cepat. |
judul | Judul Balasan Cepat | Diperlukan. Maksimal 256 karakter. |
balasan | Teks Balasan | Diperlukan. Maksimal 10 balasan dengan maksimal 256 karakter untuk tiap balasan. |
Kesalahan (Status HTTP → 4xx)
Langkah 1: Klik Pengaturan > Saluran
Langkah 2: Temukan Saluran Kustom > klik Kelola
Langkah 3: Di halaman Konfigurasi Saluran Kustom Anda akan melihat konfigurasi berikut:
Ikon Saluran - Unggah gambar yang berfungsi sebagai ikon untuk Saluran Kustom Anda.
Nama Saluran - Nama Saluran dapat diubah dan digunakan secara internal untuk mengidentifikasi Saluran.
URL webhook untuk pesan keluar — URL webhook untuk pesan keluar ke Saluran ini.
URL webhook untuk pesan masuk — URL webhook untuk pesan masuk ke Saluran ini.
Jenis ID — Ini digunakan untuk identifikasi pengguna dan digunakan untuk berkomunikasi dengan server integrasi khusus Anda.
ID Saluran — ID Saluran Unik untuk mengidentifikasi Saluran Kustom Anda.
Token API — Pengidentifikasi unik yang digunakan untuk mengautentikasi pengguna untuk mengakses API.
Langkah 4: Klik Simpan Perubahan untuk memperbarui konfigurasi Saluran Kustom.
Ya kamu bisa. Berikut tiga langkah yang harus diikuti:
Di respond.io, masukkan URL webhook tujuan dari platform lain ke dalam kolom URL webhook untuk pesan masuk .
Pada platform lain, siapkan URL webhook yang menunjuk ke respond.io, yang memungkinkan Kontak mengirimkan pesan kembali kepada Anda.
Anda'akan memerlukan Server Integrasi Kustom untuk menginterpretasikan API dari respond.io dan platform lainnya, yang memungkinkan pertukaran pesan di antara keduanya.
Pastikan untuk mengonfirmasi dengan platform lain bahwa dua langkah pertama dapat dilakukan.
Saat menghubungkan Saluran Kustom, pesan yang dikirim ke respond.io melalui webhook akan selalu segera mengembalikan kode status 200, terlepas dari apakah pesan tersebut berhasil diteruskan ke respond.io. Hal ini karena sifat webhook yang dirancang untuk mengembalikan respons langsung tanpa memverifikasi keberhasilan pengiriman pesan.