Cara termudah dan paling intuitif bagi bisnis dan pengembang untuk mulai membangun Whatsapp Cloud API .
Kirim pesan teks berformat bebas ke penerima
Kirim pesan Geo-lokasi ke penerima
Kirim dokumen ke penerima
Kirim gambar ke penerima
Kirim video ke penerima
Kirim audio ke penerima
Kirim daftar tombol ke penerima (jumlah maksimal tombol yang diperbolehkan adalah 3)
Kirim daftar tombol radio ke penerima (jumlah maksimal tombol radio yang diperbolehkan adalah 10)
Kirim kontak ke penerima
Hasilkan kode QR yang dapat dipindai oleh penerima
Tandai pesan sebagai sudah dibaca
Parsing pesan masuk
Apa itu API Awan WhatsApp? Tonton video berdurasi 60 detik ini saat peluncuran Whatsapp Cloud API.
Paket apa ini? Paket ini adalah pembungkus NodeJS tidak resmi dan bersumber terbuka di sekitar WhatsApp Cloud API resmi.
Mengapa paket ini bermanfaat? Karena memungkinkan Anda menggunakan WhatsApp Cloud API tanpa harus menulis banyak kode.
Bisakah saya menggunakan paket ini di proyek saya? Ya, Anda dapat menggunakannya sesuka Anda.
Bisakah saya berkontribusi pada paket ini? Ya, Anda dapat berkontribusi pada paket ini dengan membuat permintaan tarik.
Untuk menginstal paket ini di proyek Anda:
Menggunakan NPM:
npm instal whatsappcloudapi_wrapper
Menggunakan Benang:
benang tambahkan whatsappcloudapi_wrapper
Pertama impor paketnya sebagai berikut:
const WhatsappCloudAPI = memerlukan('whatsappcloudapi_wrapper');
Kemudian inisialisasi kelas sebagai berikut:
const Whatsapp = new WhatsappCloudAPI({accessToken: 'Token akses Anda di sini',senderPhoneNumberId: 'ID nomor telepon pengirim Anda di sini',WABA_ID: 'ID Akun Whatsapp Business Anda di sini',});
menunggu Whatsapp.sendText({pesan: 'Halo dunia',recipientPhone: 'nomor telepon penerima Anda di sini',});
> Quick Question: - How does a recipient phone number look like? > Quick Answer: - A recipient phone number is the international phone number of the recipient without the '+' prefix. - For example, where a Kenyan phone number is '+254712345678' we would send the message to a recipientPhone 254712345678. - For a phone number +15550253483 we would send the message to a recipientPhone 15550253483. - For an US phone number +1 555-555-5555 we would send the message to a recipientPhone 5555555555. Makes sense?
menunggu Whatsapp.sendLocation({recipientPhone: 'nomor telepon penerima Anda di sini',lintang: 'lintang Anda di sini',bujur: 'bujur Anda di sini',nama: 'nama lokasi Anda di sini',alamat: 'jalan/alamat lokasi Anda di sini ',});
// Kirim dokumen yang dihosting di URL publik, tunggu Whatsapp.sendDocument({recipientPhone: 'nomor telepon penerima Anda di sini',caption: 'Faktur #123.',url: 'http://pdfkit.org/demo/out .pdf',});//ATAU// Kirim dokumen yang ada di sistem file lokal Anda (file akan diunggah ke server WhatsApp terlebih dahulu sebelum dikirim).await Whatsapp.sendDocument({recipientPhone: 'nomor telepon penerima Anda di sini',file_path: './output.pdf',caption: 'Faktur #123',});
// Kirim gambar yang dihosting di URL publik, tunggu Whatsapp.sendImage({recipientPhone: 'nomor telepon penerima Anda di sini',caption: 'Test',file_path: 'https://example.com/image.png',} );// ATAU// Kirim gambar yang ada di sistem file lokal Anda (file akan diunggah ke server WhatsApp terlebih dahulu sebelum dikirim).await Whatsapp.sendImage({recipientPhone: 'nomor telepon penerima Anda di sini',keterangan: 'Uji',jalur_file: './XEIDF3D5FTBDF1.png',});
// Kirim video yang dihosting di URL publik, tunggu Whatsapp.sendVideo({recipientPhone: 'nomor telepon penerima Anda di sini',caption: 'Test',url: 'https://test-videos.co.uk/vids/ bigbuckbunny/mp4/h264/720/Big_Buck_Bunny_720_10s_1MB.mp4',});// OR// Kirim video yang ada di sistem file lokal Anda (file akan diunggah ke server WhatsApp terlebih dahulu sebelum dikirim).tunggu Whatsapp.sendVideo({recipientPhone: 'nomor telepon penerima Anda di sini',caption: 'Test',file_path: './last.mp4',}) ;
// Kirim audio yang dihosting di URL publik, tunggu Whatsapp.sendAudio({recipientPhone: 'nomor telepon penerima Anda di sini',url: 'https://example.com/audio.mp3',});// OR/ / Kirim audio yang ada di sistem file lokal Anda (file akan diunggah ke server WhatsApp terlebih dahulu sebelum dikirim).await Whatsapp.sendAudio({recipientPhone: 'nomor telepon penerima Anda di sini',caption: 'Tes',jalur_file: './last.mp3',});
menunggu Whatsapp.sendSimpleButtons({recipientPhone: 'nomor telepon penerima Anda di sini',pesan: `Apa yang bisa saya bantu hari ini`,listOfButtons: [{title: 'Lihat beberapa produk',id: 'see_categories',},{title: 'Kirim faktur saya',id: 'print_invoice',},{title: 'Bicara dengan manusia',id: 'talk_to_human',},],});
menunggu Whatsapp.sendRadioButtons({recipientPhone: 'nomor telepon penerima Anda di sini',headerText: '10 Produk Teratas Black Friday',bodyText:'Daggie memiliki beberapa produk hebat yang disiapkan untuk Anda berdasarkan riwayat belanja Anda sebelumnya.nSilakan pilih salah satu dari produk di bawah ini.',footerText: 'Disetujui oleh Daggie Blanqx',listOfSections: [{title: 'Top 3 Fashion',rows: [{title: 'Black LVX T-Shirt',deskripsi: 'KES 2999.00nLVX merupakan kaos berbahan katun hangat',id: 'SKU12_black_lvx_tshirt',},{title: 'Purple hoodie',description:'KES 1999.00nPurple hoodie berlogo Logrocket', id: 'SKU13_purple_hoodie',},{judul: 'Air Jordan 1',description:'KES 10999.00nKami berpindah ke tempat yang tidak bisa dilakukan orang lain.Mau terbang?',id: 'SKU14_air_jordan_1',},],},{title: '3 Gadget Teratas',rows: [{title: 'Apple Watch ',description:'KES 75999.00nWaktu terbatas, nikmati setiap detiknya',id: 'SKU15_apple_watch',},{title: 'Surface Pro',description: `KES 59999.00nJangan hanya menjelajahi web, jelajahi dunia`,id: 'SKU16_surface_pro',},{title: 'Xiaomi Beats Speaker',description : `KES 45699nTergantung bagaimana detak jantungmu, bagaimana Xiaomi Berdetak.`,id: 'SKU17_xiaomi_beats_speaker',},],},{title: 'Top 3 Kitchen',rows: [{title: 'Portable Hand Mixer',description: `KES7899n Goda seleramu dengan mencampurkan makanan kesukaanmu secara merata.`,id: 'SKU18_portable_hand_mixer ',},{title: 'Pembuat wafel anti lengket',deskripsi: `KES7899nWafel Hebat dibuat dengan bahan-bahan terbaik.`,id: 'SKU19_non_stick_waffle_maker',},{title: '6-set Cooking Spoons',description: `KES7899nJaga kebahagiaanmu dengan benar.`,id: 'SKU20_6_set_cooking_spoons',},] ,},{title: '1 pilihan acak',baris: [{title: 'Nivea Icy Soap',deskripsi: `KES899nTetap terhidrasi dan segar. Menutrisi kulit Anda.`,id: 'SKU21_nivea_icy_soap',},],},],});
menunggu Whatsapp.sendContact({recipientPhone: receiverPhone,contact_profile: {addresses: [{street: '1 Hacker Way',city: 'Menlo Park',state: 'CA',zip: '94025',country: 'Amerika Serikat' ,kode_negara: 'kami',ketik: 'HOME',},{jalan: '200 Jefferson Dr',kota: 'Menlo Park',negara bagian: 'CA',zip: '94025',negara: 'Amerika Serikat',kode_negara: 'kami',ketik: 'KERJA',},],tanggal lahir: '14-02-2002',email: [{email: ' [email protected]',ketik: 'KERJA',},{email: '[email protected]',ketik: 'HOME',},],nama: {nama_format: 'Daggie Blanqx',nama_depan: 'Daggie',nama_belakang: 'Blanqx',nama_tengah: 'M.',akhiran: 'Sr',awalan: 'Sw Engr',},org: {perusahaan: 'WhatsApp',departemen: 'Desain',judul: 'Manajer',},telepon: [{telepon: '+1 (940) 555-1234',ketik: 'HOME',wa_id: '16505551234', // opsional},{telepon: '+1 (650) 555-1234',ketik: 'KERJA', // opsionalwa_id: '16505551234', // opsional},],url: [{url: 'https://www.facebook.com',ketik: 'KERJA',},{url: 'https://www.whatsapp.com',ketik: 'HOME',},],},});
let result = menunggu Whatsapp.createQRCodeMessage({message: `Pesan kode QR Anda di sini. Saya adalah pesan yang disembunyikan dalam kode QR.`,imageType: 'png' || 'svg',});let urlOfImage = result.data .qr_image_url;
Lihat gambar di bawah ini tentang cara menampilkan kode QR:
menunggu Whatsapp.markMessageAsRead({message_id: 'id pesan Anda di sini',});// Kesalahan yang tidak dapat dicoba lagi akan terjadi jika pesan tidak ditemukan atau pesan sudah dibaca.
Panjang id tombol harus antara 1 dan 256 karakter.
Judul tombol harus antara 1 dan 20 karakter.
Daftar item dibatasi hingga 10.
Deskripsi item dalam daftar harus antara 1 dan 72 karakter.
Judul daftar harus terdiri dari 1 hingga 24 karakter.
Id daftar harus terdiri dari 1 hingga 200 karakter.
// req.body adalah isi permintaan yang melakukan ping ke webhook. Payload yang tidak valid akan menimbulkan kesalahan, dan Anda harus merespons dengan status HTTP 5** atau 4**, bukan 200.// ingat untuk merespons dengan status HTTP 200 di akhir permintaan masuk yang berhasil.let data = Whatsapp.parseMessage( req.body);/*data.isNotificationMessage akan bernilai true jika merupakan pesan dari pelanggan, sebaliknya akan bernilai false.data.isNotificationMessage akan bernilai true jika berupa notifikasi dari Meta (misalnya pemberitahuan status pengiriman/baca), itu akan salah jika tidak. data akan menimbulkan kesalahan jika isi permintaan webhook tidak valid atau tidak dari Meta.*/
if (data?.isMessage) {biarkan pesan masuk = data.pesan;biarkan penerimaTelepon = pesan masuk.dari.ponsel; // ekstrak nomor telepon pelanggan penerimaNama = pesan masuk.dari.nama; // ekstrak nama pelanggan typeOfMsg = comingMessage.type; // ekstrak jenis messagelet message_id = comingMessage.message_id; // ekstrak idif pesan (typeOfMsg === 'simple_button_message') {let button_id = comingMessage.button_reply.id;if (button_id === 'book_appointment') {// Pelanggan mengklik tombol sederhana yang idnya adalah 'book_appointment '.// Anda dapat meresponsnya dengan tindakan keluar, misalnya pesan teksmenunggu Whatsapp.sendText({pesan: `Halo pelanggan, Anda mengklik tombol 'buat janji temu'`,recipientPhone: 'nomor telepon penerima Anda di sini',});};};
if (data?.isMessage) {biarkan pesan masuk = data.pesan;biarkan penerimaTelepon = pesan masuk.dari.ponsel; // ekstrak nomor telepon pelanggan penerimaNama = pesan masuk.dari.nama; // ekstrak nama pelanggan typeOfMsg = comingMessage.type; // ekstrak jenis messagelet message_id = comingMessage.message_id; // ekstrak idif pesan (typeOfMsg === 'radio_button_message') {let choiceId = comingMessage.list_reply.id;if (selectionId === 'morning_session') {// Pelanggan memilih radio button dengan id 'morning_session' .// Anda dapat meresponsnya dengan tindakan keluar, misalnya pesan teksmenunggu Whatsapp.sendText({message: `Anda telah memilih opsi 'sesi_pagi'`,recipientPhone: 'nomor telepon penerima Anda di sini'});};};
Jika Anda memiliki pertanyaan, tanyakan melalui forum Diskusi GitHub
Jika Anda memiliki saran atau masukan, silakan buka masalah atau buat permintaan tarik.
Paket ini sedang dalam pengembangan aktif.
Ini berarti fitur-fitur baru ditambahkan secara berkala.
Jika fitur favorit Anda hilang, Anda selalu dapat membuat versi mundur atau membuat permintaan penarikan yang akan ditinjau dan digabungkan ke rilis berikutnya.
Terima kasih atas kontribusi Anda.
Selamat membuat kode!
Ikuti saya di Twitter: @daggieblanqx
Saya juga di LinkedIn, tempat Anda dapat menandai saya ke proyek luar biasa yang Anda buat menggunakan paket ini: @daggieblanqx
Entri blog: Logrocket/@Daggieblanqx