{"id":996,"date":"2022-11-07T04:47:24","date_gmt":"2022-11-07T04:47:24","guid":{"rendered":"https:\/\/fonnte.com\/tutorial\/?p=996"},"modified":"2025-02-21T08:58:25","modified_gmt":"2025-02-21T08:58:25","slug":"mengirim-pesan-whatsapp-php-api","status":"publish","type":"post","link":"https:\/\/fonnte.com\/tutorial\/mengirim-pesan-whatsapp-php-api\/","title":{"rendered":"Cara mengirim pesan whatsapp dengan PHP (API)"},"content":{"rendered":"\n<p>Mengirimkan pesan whatsapp dengan kode PHP untuk bisa digunakan secara otomatis sekarang bisa dilakukan dengan mudah.<\/p>\n\n\n\n<p>Sebelumnya untuk mengirimkan invoice, notifikasi, konfirmasi dan lain-lain biasanya dilakukan melalui email.<\/p>\n\n\n\n<p>Sekarang, mengirimkan pesan whatsapp bisa dilakukan dengan menggunakan API.<\/p>\n\n\n\n<p>Fonnte menyediakan API yang sangat mudah digunakan untuk mengirimkan pesan whatsapp melalui API.<\/p>\n\n\n\n<p>Dalam tutorial ini, akan ditunjukkan bagaimana cara mengirimkan pesan whatsapp dengan PHP melalui API fonnte.<\/p>\n\n\n\n<div class=\"wp-block-group quote\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p><em>Tutorial ini memerlukan pemahaman dasar tentang bahasa pemrograman PHP. Kalau kamu belum memiliki pengalaman menuliskan kode atau tidak tahu harus melakukan apa, sebaiknya pertimbangkan untuk menggunakan jasa developer.<\/em><\/p>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"API whatsapp\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/videoseries?list=PL7yPMr9J3bAnZlhcOUx-NvI5UnDZO9rKA\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Prasyarat<\/h2>\n\n\n\n<p>Sebelum menggunakan API ini, kamu harus <a href=\"https:\/\/md.fonnte.com\/new\/register.php\">mendaftar<\/a> kalau belum punya akun, kemudian login dan tambah device.<\/p>\n\n\n\n<p>Copy <a href=\"https:\/\/docs.fonnte.com\/token-api-key\/\" data-type=\"post\" data-id=\"131\">token<\/a> (API key) yang ada di menu device  untuk digunakan sebagai authorization saat mengirimkan API.<\/p>\n\n\n\n<p>Lalu, <a href=\"https:\/\/docs.fonnte.com\/how-to-connect\/\" data-type=\"post\" data-id=\"433\">konekkan device<\/a> sebelum mulai mengirimkan pesan.<\/p>\n\n\n\n<p>Gunakan libcurl terbaru dengan versi PHP diatas 7.1 sebagaimana diperlukan dalam sebagai <a href=\"https:\/\/www.php.net\/manual\/en\/curl.requirements.php\">requirement<\/a> oleh PHP.<\/p>\n\n\n\n<p>Referensi API lengkap ada di halaman <a href=\"https:\/\/docs.fonnte.com\/api-send-message\/\" data-type=\"post\" data-id=\"21\">dokumentasi fonnte<\/a> dan <a rel=\"noreferrer noopener\" href=\"https:\/\/documenter.getpostman.com\/view\/14730548\/2s83zpJLnW#23e6b274-e1ae-4082-82fc-133dc84b481e\" target=\"_blank\">postman<\/a>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#single\" data-type=\"internal\" data-id=\"#single\">Satu nomor<\/a><\/li>\n\n\n\n<li><a href=\"#bulk\">Banyak nomor\/broadcast<\/a><\/li>\n\n\n\n<li><a href=\"#schedule\">Pesan schedule<\/a><\/li>\n\n\n\n<li><a href=\"#dynamic\" data-type=\"internal\" data-id=\"#dynamic\">Pesan dinamis<\/a><\/li>\n\n\n\n<li><a href=\"#media\">Pesan media<\/a>\n<ul class=\"wp-block-list\">\n<li><a href=\"#url\">URL<\/a><\/li>\n\n\n\n<li><a href=\"#local\">File lokal<\/a><\/li>\n\n\n\n<li><a href=\"#form\">Upload<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"#button\">Pesan button<\/a><\/li>\n\n\n\n<li><a href=\"#template\">Pesan template<\/a><\/li>\n\n\n\n<li><a href=\"#list\" data-type=\"internal\" data-id=\"#list\">Pesan list<\/a><\/li>\n\n\n\n<li><a href=\"#lokasi\" data-type=\"internal\" data-id=\"#list\">Pesan lokasi<\/a><\/li>\n\n\n\n<li>Pesan polling<\/li>\n\n\n\n<li>Pesan follow up<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"single\">Satu nomor<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"mengirim pesan whatsapp menggunakan API PHP\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/A9klOsh1Uj0?list=PL7yPMr9J3bAnZlhcOUx-NvI5UnDZO9rKA\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Untuk menggunakan API fonnte, cukup copy kode dibawah ini.<\/p>\n\n\n\n<p>Buat 1 file, misalkan send.php di localhost maupun di server (localhost dengan xampp sebagai contoh).<\/p>\n\n\n\n<p>Lalu paste kode dibawah ini<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789',\n'message' =&gt; 'test message', \n'countryCode' =&gt; '62', \/\/optional\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Jangan lupa untuk mengupdate token, target dan message dari kode diatas, kemudian jalankan file send.php di browser.<\/p>\n\n\n\n<p>Dan selamat! kamu barusaja mengirimkan pesan pertama menggunakan API.<\/p>\n\n\n\n<p>contoh proof of concept menggunakan PHP dan MYSQL<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Cara kirim pesan whatsapp dengan PHP MYSQL\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/4iubVo4hhNE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>\n&lt;?php\n\ninclude 'koneksi.php';\n\n\/\/token device\n$token = \"xxx\";\n\n\n\/\/fungsi kirim pesan\nfunction Kirimfonnte($token, $data)\n{\n    $curl = curl_init();\n\n    curl_setopt_array($curl, array(\n        CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n        CURLOPT_RETURNTRANSFER =&gt; true,\n        CURLOPT_ENCODING =&gt; '',\n        CURLOPT_MAXREDIRS =&gt; 10,\n        CURLOPT_TIMEOUT =&gt; 0,\n        CURLOPT_FOLLOWLOCATION =&gt; true,\n        CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n        CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n        CURLOPT_POSTFIELDS =&gt; array(\n            'target' =&gt; $data&#91;\"target\"],\n            'message' =&gt; $data&#91;\"message\"],\n        ),\n        CURLOPT_HTTPHEADER =&gt; array(\n            'Authorization: ' . $token\n        ),\n    ));\n\n    $response = curl_exec($curl);\n\n    curl_close($curl);\n    echo $response; \/\/log response fonnte\n}\n\n\/\/ambil data user dari database\n$res = mysqli_query($db, \"SELECT * FROM user\");\n$row = mysqli_fetch_assoc($res);\n\n$data = &#91;\n    \"target\" =&gt; $row&#91;\"whatsapp\"],\n    \"message\" =&gt; \"Halo \" . $row&#91;\"name\"] . \", Terimakasih telah mendaftar di aplikasi kami\"\n];\n\n\/\/kirim pesan\nKirimfonnte($token, $data);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"bulk\">Banyak nomor\/broadcast<\/h2>\n\n\n\n<p>note : sekarang ada cara baru yang lebih baik. lihat <a href=\"#data\">cara baru<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cara lama<\/h3>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"cara blast \/ broadcast whatsapp dengan PHP\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/2YdwSRWgzOI?list=PL7yPMr9J3bAnZlhcOUx-NvI5UnDZO9rKA\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Kalau ada keperluan untuk mengirimkan pesan ke beberapa nomor dalam satu waktu, <strong>JANGAN PAKAI LOOP!<\/strong><\/p>\n\n\n\n<p>Lalu, bagaimana caranya kirim pesan broadcast ke banyak nomor tanpa pakai loop?<\/p>\n\n\n\n<p>Jangan khawatir, fonnte sudah sediakan caranya.<\/p>\n\n\n\n<p>Cuma perlu tambah koma untuk masing2 nomor.<\/p>\n\n\n\n<p>Contoh : 081xxxxx,082xxxxx.<\/p>\n\n\n\n<p>Bisa lihat ke kode dibawah ini<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789,08987654321',\n'message' =&gt; 'test message',\n'delay' =&gt; '2', \n'countryCode' =&gt; '62', \/\/optional\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Jadi hanya memisahkan setiap nomor dengan koma tanpa perlu loop.<\/p>\n\n\n\n<p>Menambahkan &#8216;delay&#8217; juga sangat disarankan. angka yanng diinput dalam satuan detik.<\/p>\n\n\n\n<p>Contoh diatas akan mengirimkan pesan ke 628123456789 saat itu juga lalu menunggu 2 detik baru mengirim ke nomor 628123456789.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"data\">Cara baru<\/h3>\n\n\n\n<p>kamu bisa menggunakan parameter baru : data.<\/p>\n\n\n\n<p>parameter data memungkinkan kamu untuk menggabungkan beberapa request menjadi 1 request.<\/p>\n\n\n\n<p>kamu bisa menggunakan hampir semua parameter yang ada.<\/p>\n\n\n\n<p>cara ini mengurangi kegunaan variable karena sekarang setiap messagenya bisa di buat sendiri.<\/p>\n\n\n\n<p>kodenya sebagai berikut.<\/p>\n\n\n\n<p>&lt;?php<br><br>$curl = curl_init();<br><br>curl_setopt_array($curl, array(<br>  CURLOPT_URL =&gt; &#8216;https:\/\/api.fonnte.com\/send&#8217;,<br>  CURLOPT_RETURNTRANSFER =&gt; true,<br>  CURLOPT_ENCODING =&gt; &#8221;,<br>  CURLOPT_MAXREDIRS =&gt; 10,<br>  CURLOPT_TIMEOUT =&gt; 0,<br>  CURLOPT_FOLLOWLOCATION =&gt; true,<br>  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,<br>  CURLOPT_CUSTOMREQUEST =&gt; &#8216;POST&#8217;,<br>  CURLOPT_POSTFIELDS =&gt; array(&#8216;data&#8217; =&gt; &#8216;[{&#8220;target&#8221;: &#8220;08123456789&#8221;, &#8220;message&#8221;: &#8220;1&#8221;,&#8221;delay&#8221;:&#8221;1&#8243;},{&#8220;target&#8221;: &#8220;08123456789,08987654321&#8221;, &#8220;message&#8221;: &#8220;2&#8221;,&#8221;delay&#8221;:&#8221;5&#8243;},{&#8220;target&#8221;: &#8220;08123456789&#8221;, &#8220;message&#8221;: &#8220;3&#8221;,&#8221;delay&#8221;:&#8221;0&#8243;}]&#8217;<br>),<br>  CURLOPT_HTTPHEADER =&gt; array(<br>    &#8216;Authorization: TOKEN&#8217; \/\/change TOKEN to your actual token<br>  ),<br>));<br><br>$response = curl_exec($curl);<br><br>curl_close($curl);<br>echo $response;<\/p>\n\n\n\n<p>kode diatas akan mengirimkan pesan 1 segera -&gt; tunggu 2 detik-&gt; kirim pesan 2 -&gt; tunggu 2 detik-&gt; kirim pesan 2 -&gt; kirim pesan 3<\/p>\n\n\n\n<p>contoh proof of concept menggunakan PHP dan MYSQL<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Cara broadcast pesan whatsapp dengan PHP MYSQL\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/75pEu7G3cbE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<pre id=\"highlight\" class=\"wp-block-code\"><code>&lt;?php\n\ninclude 'koneksi.php';\n\n\/\/token device\n$token = \"xxx\";\n\n\n\/\/fungsi kirim pesan\nfunction Kirimfonnte($token, $data)\n{\n    $curl = curl_init();\n\n    curl_setopt_array($curl, array(\n        CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n        CURLOPT_RETURNTRANSFER =&gt; true,\n        CURLOPT_ENCODING =&gt; '',\n        CURLOPT_MAXREDIRS =&gt; 10,\n        CURLOPT_TIMEOUT =&gt; 0,\n        CURLOPT_FOLLOWLOCATION =&gt; true,\n        CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n        CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n        CURLOPT_POSTFIELDS =&gt; array(\n            'data' =&gt; $data&#91;'data'],\n        ),\n        CURLOPT_HTTPHEADER =&gt; array(\n            'Authorization: ' . $token\n        ),\n    ));\n\n    $response = curl_exec($curl);\n\n    curl_close($curl);\n    echo $response; \/\/log response fonnte\n}\n\n\/\/ambil data user dari database\n$res = mysqli_query($db, \"SELECT * FROM user\");\n\n\/\/looping data user\n$alldata = &#91;];\nwhile ($row = mysqli_fetch_assoc($res)) {\n    $data = &#91;\n        \"target\" =&gt; $row&#91;\"whatsapp\"],\n        \"message\" =&gt; \"Halo \" . $row&#91;\"name\"] . \", Terimakasih telah mendaftar di aplikasi kami\",\n        \"delay\" =&gt; \"1-3\", \/\/tambah delay agar tidak terlalu cepat\n    ];\n    array_push($alldata, $data);\n}\n\n\/\/data yang akan dikirim\n$data = &#91;\n    \"data\" =&gt; json_encode($alldata), \/\/ubah array ke json (string)\n];\n\n\/\/kirim pesan\nKirimfonnte($token, $data);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schedule\">Pesan schedule<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"cara mengirim pesan whatsapp terjadwal dengan PHP\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/Dr9t8rT5JZo?list=PL7yPMr9J3bAnZlhcOUx-NvI5UnDZO9rKA\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Pengiriman pesan whatsapp juga bisa dilakukan dengan jadwal tertentu.<\/p>\n\n\n\n<p>Caranya dengan menambahkan parameter &#8216;schedule&#8217; dengan value unix timestamp sampai ke detik, <em>tidak sampai milidetik<\/em><\/p>\n\n\n\n<p>Pass the parameter &#8216;schedule&#8217; with value of unix timestamp down to second, <em>not to milisecond<\/em>.<\/p>\n\n\n\n<p>Contoh : 1667433600 untuk 3 November 2022 12:00:00 AM (GMT +0)<\/p>\n\n\n\n<p>Untuk waktu indonesia, jadwal diatas akan dijalankan pada :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WIB (GMT +7) : 3 November 2022 7:00:00 AM<\/li>\n\n\n\n<li>WITA (GMT +8) : 3 November 2022 8:00:00 AM<\/li>\n\n\n\n<li>WIT (GMT +9) : 3 November 2022 9:00:00 AM<\/li>\n<\/ul>\n\n\n\n<p>Silakan copy code dibawah ini<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789',\n'message' =&gt; 'test message', \n'schedule' =&gt; '1667433600', \n'countryCode' =&gt; '62', \/\/optional\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Pesannya akan terkirim pada jadwal yang ditentukan.<\/p>\n\n\n\n<p>contoh proof of concept menggunakan PHP dan MYSQL<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Cara kirim pesan whatsapp terjadwal dengan PHP MYSQL\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/IvKTiyD9VRg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\ninclude 'koneksi.php';\n\n\/\/token device\n$token = \"xxx\";\n\n\n\/\/fungsi kirim pesan\nfunction Kirimfonnte($token, $data)\n{\n    $curl = curl_init();\n\n    curl_setopt_array($curl, array(\n        CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n        CURLOPT_RETURNTRANSFER =&gt; true,\n        CURLOPT_ENCODING =&gt; '',\n        CURLOPT_MAXREDIRS =&gt; 10,\n        CURLOPT_TIMEOUT =&gt; 0,\n        CURLOPT_FOLLOWLOCATION =&gt; true,\n        CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n        CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n        CURLOPT_POSTFIELDS =&gt; array(\n            'target' =&gt; $data&#91;'target'],\n            'message' =&gt; $data&#91;'message'],\n            'schedule' =&gt; $data&#91;'schedule'],\n        ),\n        CURLOPT_HTTPHEADER =&gt; array(\n            'Authorization: ' . $token\n        ),\n    ));\n\n    $response = curl_exec($curl);\n\n    curl_close($curl);\n    echo $response; \/\/log response fonnte\n}\n\n\/\/ambil data user dari database\n$res = mysqli_query($db, \"SELECT * FROM user\");\n\n$row = mysqli_fetch_assoc($res);\n$schedule = strtotime($row&#91;\"schedule\"] . $row&#91;\"timezone\"]);\n$data = &#91;\n    \"target\" =&gt; $row&#91;\"whatsapp\"],\n    \"message\" =&gt; \"Halo \" . $row&#91;\"name\"] . \", jangan lupa untuk mengikuti webinar hari ini ya\",\n    \"schedule\" =&gt; $schedule,\n];\n\n\/\/ kirim pesan\nKirimfonnte($token, $data);\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"dynamic\">Pesan dinamis<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"cara mengirim pesan whatsapp dengan variabel PHP\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/mnTI7KjigQ8?list=PL7yPMr9J3bAnZlhcOUx-NvI5UnDZO9rKA\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Setelah sukses mengirimkan pesan whatsapp, lalu ada pertanyaan lain.<\/p>\n\n\n\n<p>&#8220;Gimana caranya pesannya ini bisa personal?&#8221;<\/p>\n\n\n\n<p>Tentu saja bisa dilakukan!<\/p>\n\n\n\n<p>Opsi pertama adalah dengan tidak menggunakan fitur dari API fonnte (<strong>not recommended<\/strong>).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mencari data di database<\/li>\n\n\n\n<li>Simpan sebagai variabel<\/li>\n\n\n\n<li>Membuat loop<\/li>\n\n\n\n<li>Kirim lewat API <strong>secara individu<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Kamu sedang membuat n request ke fonnte.<\/p>\n\n\n\n<p>Meskipun fonnte bisa menangani, tapi ada solusi yang lebih baik!<\/p>\n\n\n\n<p>Opsi kedua adalah dengan menggunakan fitur dari API fonnte (<strong>highly recommended<\/strong>).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mencari data di database<\/li>\n\n\n\n<li>Simpan sebagai variabel<\/li>\n\n\n\n<li>Membuat loop<\/li>\n\n\n\n<li>Mengirimkan melalui API <strong>sekaligus<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Untuk mengirim pesan dinamis, kamu bisa menggunakan variabel di fonnte.<\/p>\n\n\n\n<p>Variabel bisa dibuat dengan pemisah pipe (|).<\/p>\n\n\n\n<p>Variabel bisa ditambahkan di &#8216;target&#8217;, and kemudian bisa digunakan di &#8216;message&#8217;<\/p>\n\n\n\n<p>Berikut kodenya<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789|Fonnte|Admin,08987654321|Lily|Client',\n'message' =&gt; 'test message to {name} as {var1}', \n'delay' =&gt; '2', \n'countryCode' =&gt; '62', \/\/optional\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Kode diatas akan mengirimkan pesan ke 2 nomor dengan delay 2 detik untuk setiap nomor<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>628123456789 : test message to Fonnte as Admin<\/li>\n\n\n\n<li>628987654321 : test message to Lily as Client<\/li>\n\n\n\n<li><\/li>\n<\/ul>\n\n\n\n<p>Variabel pertama akan menggunakan {name} dan sisanya akan menggunakan {var1},{var2},&#8230; dengan jumlah variabel tidak terbatas.<\/p>\n\n\n\n<p>Dengan demikian, kamu bisa mengirimkan pesan whatsapp yang dinamis di setiap pesannya.<\/p>\n\n\n\n<p>Kamu bisa pelajari lebih lanjut tentang <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.fonnte.com\/about-variable\/\" data-type=\"post\" data-id=\"464\" target=\"_blank\">variable<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"media\">Pesan media<\/h2>\n\n\n\n<p><strong><em>note : fitur ini hanya bisa dipakai oleh paket super\/advanced\/ultra.<\/em><\/strong><\/p>\n\n\n\n<p>Untuk mengirimkan file\/attachment, fonnte menyediakan 2 opsi, yaitu melalui url maupun melalui binary.<\/p>\n\n\n\n<p>Parameter url digunakan untuk mengirim file menggunakan url dan parameter file digunakan untuk mengirim file menggunakan binary.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"cara mengirim gambar dan file ke whatsapp dengan PHP\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/2wj-zuCRpFg?list=PL7yPMr9J3bAnZlhcOUx-NvI5UnDZO9rKA\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"url\">Via URL<\/h3>\n\n\n\n<p>Bisakah mengirimkan pesan dengan gambar? atau video? file seperti pdf, excel, docs? dan audio?<\/p>\n\n\n\n<p>Tentu saja!<\/p>\n\n\n\n<p>Code ini memerlukan paket dengan all feature untuk bisa mengirimkan pesan media.<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789',\n'message' =&gt; 'test message', \n'url' =&gt; 'https:\/\/md.fonnte.com\/images\/logo-dashboard.png', \n'filename' =&gt; 'my-file.pdf', \/\/optional, only works on file and audio\n'countryCode' =&gt; '62', \/\/optional\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Kamu hanya perlu menambahkan parameter &#8216;url &#8216; dan &#8216;filename &#8216; (optional).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"local\">Local file<\/h3>\n\n\n\n<p>Mengirimkan file dari komputer lokal juga memungkinkan menggunakan parameter file.<\/p>\n\n\n\n<p>Path menuju filenya harus benar. jika salah akan ada error : operation aborted by callback.<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789',\n'message' =&gt; 'test message', \n'file' =&gt; new CURLFile(\"localfile.png\"), \n'filename' =&gt; 'my-file.pdf', \/\/optional, only works on file and audio\n'countryCode' =&gt; '62', \/\/optional\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Dengan kode ini, kamu bisa mengirimkan file dari komputer lokal tanpa harus upload terlebih dahulu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"form\">Form uploads<\/h3>\n\n\n\n<p>Langsung dari upload file juga bisa.<\/p>\n\n\n\n<p>Biasanya dibutuhkan untuk custom form yang usernya upload filenya sendiri.<\/p>\n\n\n\n<p>API ini sangat berguna karena kamu tidak perlu save dulu filenya ke lokal\/upload ke hosting.<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\/\/logic\n$file = $_FILES&#91;\"file\"]&#91;\"tmp_name\"]; \/\/change \"file\" with your actual file input name tag\n$name = $_FILES&#91;\"file\"]&#91;\"name\"];\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789',\n'message' =&gt; 'test message', \n'file' =&gt; new CURLFile($file, '', $name), \n'filename' =&gt; 'my-file.pdf', \/\/optional, only works on file and audio\n'countryCode' =&gt; '62', \/\/optional\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Kamu bisa menggunakan salah satu dari 3 API diatas yang disesuaikan dengan kebutuhan kamu.<\/p>\n\n\n\n<p>Contoh proof of concept menggunakan PHP dan MYSQL<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Cara kirim pesan gambar &amp; PDF ke whatsapp dengan PHP MYSQL\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/c5T0mBAt-DM?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\ninclude 'koneksi.php';\n\n$url = \"files\/Sertifikat.pdf\";\n$filename = \"Sertifikat1.pdf\";\nif (isset($_POST&#91;\"submit\"])) {\n    $url = $_FILES&#91;'file']&#91;'tmp_name'];\n    $filename = $_FILES&#91;'file']&#91;'name'];\n}\n\n\/\/token device\n$token = \"xxx\";\n\n\n\/\/fungsi kirim pesan\nfunction Kirimfonnte($token, $data)\n{\n    $curl = curl_init();\n\n    curl_setopt_array($curl, array(\n        CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n        CURLOPT_RETURNTRANSFER =&gt; true,\n        CURLOPT_ENCODING =&gt; '',\n        CURLOPT_MAXREDIRS =&gt; 10,\n        CURLOPT_TIMEOUT =&gt; 0,\n        CURLOPT_FOLLOWLOCATION =&gt; true,\n        CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n        CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n        CURLOPT_POSTFIELDS =&gt; $data,\n        CURLOPT_HTTPHEADER =&gt; array(\n            'Authorization: ' . $token\n        ),\n    ));\n\n    $response = curl_exec($curl);\n\n    if (curl_errno($curl)) {\n        echo 'Error:' . curl_error($curl);\n    }\n\n    curl_close($curl);\n    echo $response; \/\/log response fonnte\n}\n\n\/\/ambil data user dari database\n$res = mysqli_query($db, \"SELECT * FROM user WHERE id = 1\");\n\n$row = mysqli_fetch_assoc($res);\n$data = &#91;\n    \"target\" =&gt; $row&#91;\"whatsapp\"],\n    \"message\" =&gt; \"Halo \" . $row&#91;\"name\"] . \", berikut sertifikat kamu ya\",\n    \/\/ \"url\" =&gt; $row&#91;\"url\"],\n    \"file\" =&gt; new CURLFile($url, \"\", $filename)\n];\n\n\/\/ kirim pesan\nKirimfonnte($token, $data);\n\n?&gt;\n\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Form&lt;\/title&gt;\n&lt;\/head&gt;\n\n&lt;body&gt;\n    &lt;form action=\"\" method=\"POST\" enctype=\"multipart\/form-data\"&gt;\n        &lt;input type=\"file\" name=\"file\" id=\"file\"&gt;\n        &lt;button type=\"submit\" name=\"submit\"&gt;Kirim&lt;\/button&gt;\n    &lt;\/form&gt;\n&lt;\/body&gt;\n\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<p>3 tipe pesan berikutnya akan menambahkan interaktivitas pada pesan whatsapp (deprecated).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"button\">Pesan button (Deprecated)<\/h2>\n\n\n\n<p class=\"highlight\">Fitur ini sudah tidak bisa digunakan dan tidak lagi di maintain<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"cara mengirim pesan button whatsapp dengan PHP (DEPRECATED)\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/uyEu-sipAPw?list=PL7yPMr9J3bAnZlhcOUx-NvI5UnDZO9rKA\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Apa itu pesan button?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/docs.fonnte.com\/wp-content\/uploads\/2022\/11\/Screenshot_1471.png\" alt=\"\" class=\"wp-image-513\"\/><\/figure>\n\n\n\n<p>Pesan button adalah pesan biasa yang ditambahkan pilihan yang dapat dipilih oleh lawan bicara.<\/p>\n\n\n\n<p>Pesan ini lebih interaktif dibandingkan pesan biasa yang mana kita mengharapkan user untuk membalas dengan keyword tertentu.<\/p>\n\n\n\n<p>Untuk mengirimkan pesan ini. kamu perlu membuat multidimensional array kemudian melakukan encode menjadi sebuah json.<\/p>\n\n\n\n<p><strong><em>Note : Button max 3<\/em><\/strong><\/p>\n\n\n\n<p>Berikut kodenya<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789',\n'url' =&gt; 'https:\/\/md.fonnte.com\/images\/logo-dashboard.png', \n'buttonJSON' =&gt; '{\"message\":\"fonnte button message\",\"footer\":\"fonnte footer message\",\"buttons\":&#91;{\"id\":\"mybutton1\",\"message\":\"hello fonnte\"},{\"id\":\"mybutton2\",\"message\":\"fonnte pricing\"},{\"id\":\"mybutton3\",\"message\":\"tutorial fonnte\"}]}', \n'countryCode' =&gt; '62', \/\/optional\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Parameter url ini optional jika ingin mengirimkan gambar\/video.<\/p>\n\n\n\n<p>Selain itu tidak bisa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"template\">Pesan template (Deprecated)<\/h2>\n\n\n\n<p class=\"highlight\">Fitur ini sudah tidak bisa digunakan dan tidak lagi di maintain<\/p>\n\n\n\n<p>Pesan template jauh lebih interaktif dibandingkan dengan pesan button biasa.<\/p>\n\n\n\n<p>Sayangnya, API kami belum mendukung pengiriman ke IOS\/Iphone.<\/p>\n\n\n\n<p>Jadi penggunaan API ini hanya support ke wa web dan android.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/docs.fonnte.com\/wp-content\/uploads\/2022\/11\/Screenshot_1472.png\" alt=\"\" class=\"wp-image-515\"\/><\/figure>\n\n\n\n<p>Pesan template ini support untuk link dan telepon. <\/p>\n\n\n\n<p>Button terakhir hanya button biasa<\/p>\n\n\n\n<p><strong><em>Note : max 3 buttons<\/em><\/strong><\/p>\n\n\n\n<p>Jadi, bagaimana mengirimkannya?<\/p>\n\n\n\n<p>Berikut kodenya<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789',\n'templateJSON' =&gt; '{\"message\":\"fonnte template message\",\"footer\":\"fonnte footer message\",\"buttons\":&#91;{\"message\":\"fonnte\",\"url\":\"https:\/\/fonnte.com\"},{\"message\":\"call me\",\"tel\":\"6282227097005\"},{\"id\":\"mybutton1\",\"message\":\"hello fonnte\"}]}', \n'countryCode' =&gt; '62', \/\/optional\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Pesan template tidak mendukung pengiriman dengan media.<\/p>\n\n\n\n<p>Jadi pesan ini hanya bisa berisi text.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"template\">Pesan list (Deprecated)<\/h2>\n\n\n\n<p class=\"highlight\">Fitur ini sudah tidak bisa digunakan dan tidak lagi di maintain<\/p>\n\n\n\n<p>Pesan list adalah variasi dari pesan button yang bisa menambahkan banyak pilihan, tidak hanya 3.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/docs.fonnte.com\/wp-content\/uploads\/2022\/11\/Screenshot_1473.png\" alt=\"\" class=\"wp-image-516\"\/><\/figure>\n\n\n\n<p>Ketika fonnte&#8217;s package di klik, akan muncul popup seperti dibawah ini<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/docs.fonnte.com\/wp-content\/uploads\/2022\/11\/Screenshot_1474.png\" alt=\"\" class=\"wp-image-517\"\/><\/figure>\n\n\n\n<p>Dengan demikian, kamu bisa menambahkan banyak pilihan ke lawan bicara kamu.<\/p>\n\n\n\n<p>Dan bahkan pesan list ini dapat dikelompokkan kedalam group dan bisa ditambahkan deskripsi di setiap pilihannya untuk memudahkan lawan bicara dalam memilih.<\/p>\n\n\n\n<p>Berikut kodenya<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789',\n'listJSON' =&gt; '{\"message\":\"fonnte list message\",\"footer\":\"fonnte footer message\",\"buttonTitle\":\"fonnte's packages\",\"title\":\"fonnte title\",\"buttons\":&#91;{\"title\":\"text only\",\"list\":&#91;{\"message\":\"regular\",\"footer\":\"10k messsages\/month\",\"id\":\"list-1\"},{\"message\":\"regular pro\",\"footer\":\"25k messsages\/month\",\"id\":\"list-2\"},{\"message\":\"master\",\"footer\":\"unlimited messsages\/month\",\"id\":\"list-3\"}]},{\"title\":\"all feature\",\"list\":&#91;{\"message\":\"super\",\"footer\":\"10k messsages\/month\",\"id\":\"list-4\"},{\"message\":\"advanced\",\"footer\":\"25k messsages\/month\",\"id\":\"list-5\"},{\"message\":\"ultra\",\"footer\":\"unlimited messsages\/month\",\"id\":\"list-6\"}]}]}', \n'countryCode' =&gt; '62', \/\/optional\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Kamu tinggal mengirimkannya dan menunggu balasannya<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"lokasi\">Lokasi<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"cara mengirimkan lokasi whatsapp dengan fonnte\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/WMFGHW8f8sI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Kamu bisa mengirimkan lokasi menggunakan latitude dan longitude lokasinya.<\/p>\n\n\n\n<p>Format dari value nya harus : latitude,longitude<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/docs.fonnte.com\/wp-content\/uploads\/2023\/02\/Screenshot_1724.png\" alt=\"\" class=\"wp-image-741\"\/><\/figure>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array(\n'target' =&gt; '08123456789',\n'location' =&gt; '-7.983908, 112.621391',\n\n),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN' \/\/change TOKEN to your actual token\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Kamu bisa mengganti lokasinya sesuai dengan lokasi yang mau kamu kirimkan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"poll\">Poll<\/h2>\n\n\n\n<p>Kamu bisa mengirimkan pesan polling dari whatsapp menggunakan fonnte.<\/p>\n\n\n\n<p>Polling bisa dikirimkan ke group atau perorangan.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/docs.fonnte.com\/wp-content\/uploads\/2023\/07\/Screenshot_150.png\" alt=\"Screenshot_150\" class=\"wp-image-822\"\/><\/figure>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array('target' =&gt; '082227097005','message' =&gt; 'test dari postman','choices' =&gt; 'satu,dua,tiga','select' =&gt; 'single','pollname' =&gt; 'pollku'),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN'\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Kamu bisa mengganti datanya sesuai dengan kebutuhan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"followup\">Follow up<\/h2>\n\n\n\n<p>Kamu bisa mengirimkan pesan whatsapp sebagai follow up di aplikasi yang dibuat.<\/p>\n\n\n\n<p>Membuat follow up jadi mudah dengan menggunakan API fonnte.<\/p>\n\n\n\n<p>FItur ini sebenarnya mirip dengan fitur schedule.<\/p>\n\n\n\n<p>Perbedaannya adalah :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>lebih mudah karena hanya menambah x detik, bukan seluruh timestampnya.<\/li>\n\n\n\n<li>follow up bisa dipakai bersamaan dengan fitur schedule. <\/li>\n<\/ol>\n\n\n\n<p>Tujuan utama dari fitur ini adalah memungkinkan membuat aplikasi yang mengirimkan pesan x detik setelah melakukan aksi, biasanya pada submit form.<\/p>\n\n\n\n<p>Jadi dibanding membuat schedule, cukup menambahkan berapa detik kemudian pesan ini bakal dikirim.<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>&lt;?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =&gt; 'https:\/\/api.fonnte.com\/send',\n  CURLOPT_RETURNTRANSFER =&gt; true,\n  CURLOPT_ENCODING =&gt; '',\n  CURLOPT_MAXREDIRS =&gt; 10,\n  CURLOPT_TIMEOUT =&gt; 0,\n  CURLOPT_FOLLOWLOCATION =&gt; true,\n  CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =&gt; 'POST',\n  CURLOPT_POSTFIELDS =&gt; array('target' =&gt; '082227097005','message' =&gt; 'test dari postman','followup' =&gt; 60),\n  CURLOPT_HTTPHEADER =&gt; array(\n    'Authorization: TOKEN'\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;<\/code><\/pre>\n\n\n\n<p>Kode diatas akan mengirimkan pesan ini 1 menit setelah request dibuat.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Akhir kata<\/h2>\n\n\n\n<p>Fonnte menyediakan banyak konfigurasi untuk membuat API ini sefleksibel mungkin namun tetap mudah digunakan.<\/p>\n\n\n\n<p>Kalau kamu bukan programer atau bingung harus melakukan apa, saran saya coba hire programer atau cukup gunakan fitur yang disediakan fonnte di dashboard fonnte untuk <a href=\"https:\/\/docs.fonnte.com\/how-to-send-whatsapp-message\/\" data-type=\"post\" data-id=\"461\">mengirim pesan whatsapp<\/a>.<\/p>\n\n\n\n<p>Kami sudah membuatnya selengkap mungkin di dashboard fonnte.<\/p>\n\n\n\n<p>Pada akhirnya, pesan-pesan diatas tidak hanya ditujukan untuk dikirim saja, namun perlu balasan juga. <\/p>\n\n\n\n<p>Pembahasan mengenai membuat whatsapp bot akan dibahas pada halaman <a href=\"https:\/\/docs.fonnte.com\/how-to-make-a-whatsapp-chat-bot\/\" data-type=\"post\" data-id=\"523\">cara membuat whatsapp bot<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mengirimkan pesan whatsapp dengan kode PHP untuk bisa digunakan secara otomatis sekarang bisa dilakukan dengan mudah. Sebelumnya untuk mengirimkan invoice, notifikasi, konfirmasi dan lain-lain biasanya dilakukan melalui email. Sekarang, mengirimkan pesan whatsapp bisa dilakukan dengan menggunakan API. Fonnte menyediakan API yang sangat mudah digunakan untuk mengirimkan pesan whatsapp melalui API. Dalam tutorial ini, akan ditunjukkan &#8230; <a title=\"Cara mengirim pesan whatsapp dengan PHP (API)\" class=\"read-more\" href=\"https:\/\/fonnte.com\/tutorial\/mengirim-pesan-whatsapp-php-api\/\" aria-label=\"More on Cara mengirim pesan whatsapp dengan PHP (API)\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":1001,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"description":"Kamu bisa mengirimkan pesan whatsapp dengan kode PHP menggunakan API fonnte dalam 1 menit!","title":"Cara mengirim pesan whatsapp dengan PHP (API) - Tutorial Whatsapp"},"footnotes":""},"categories":[2],"tags":[],"class_list":["post-996","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"_links":{"self":[{"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/posts\/996","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/comments?post=996"}],"version-history":[{"count":21,"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/posts\/996\/revisions"}],"predecessor-version":[{"id":1170,"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/posts\/996\/revisions\/1170"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/media\/1001"}],"wp:attachment":[{"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/media?parent=996"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/categories?post=996"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fonnte.com\/tutorial\/wp-json\/wp\/v2\/tags?post=996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}