Mengirim whatsapp secara terprogram sulit dilakukan saat itu.

Kirim invoice, notifikasi, konfirmasi, dll kebanyakan dikirim melalui email.

Saat ini, pengiriman pesan whatsapp dapat dilakukan melalui API.

Fontnte menyediakan API super mudah untuk mengirim pesan whatsapp melalui API.

Dalam tutorial ini Anda akan mempelajari caranya.

Tutorial ini mengharuskan Anda memahami bahasa pemrograman dasar terutama PHP. Jika Anda tidak memiliki pengalaman atau tidak tahu apa yang harus dilakukan, harap pertimbangkan untuk menyewa seorang pengembang.

Prerequisite

Sebelum anda dapat menggunakan API ini, anda perlu membuat akun, login, dan membuat perangkat.

Salim token sebagai kunci API untuk digunakan pada API.

Kemudian, menghubungkan perangkat Anda terlebih dahulu sebelum anda dapat melanjutkan untuk mengirim pesan.

Silakan gunakan curl terbaru dengan versi php 7.1++ sebagai requirement.

Referensi API lengkap dapat ditemukan di docs dan postman.

Tentang Sasaran

Target adalah nomor atau id grup whatsapp yang akan menerima pesan yang anda kirimkan.

Jika targetnya bersifat pribadi, anda tinggal menetapkan nomor whatsapp mereka sebagai target

Jika targetnya adalah grup whatsapp maka anda harus mengetahui id grup whatsapp tersebut.

Lihat tutorial untuk mendapatkan id grup whatsapp.

Pesan Tunggal

Untuk menggunakan API fonnte, cukup salin kode di bawah ini.

Buatlah file misalnya send.php di lingkungan anda (localhost menggunakan xampp misalnya).

Lalu pastekan kode ini.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.fonnte.com/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'target' => '08123456789',
'message' => 'test message',
'countryCode' => '62', //optional
),
CURLOPT_HTTPHEADER => array(
'Authorization: TOKEN' //change TOKEN to your actual token
),
));

$response = curl_exec($curl);
if (curl_errno($curl)) {
$error_msg = curl_error($curl);
}
curl_close($curl);

if (isset($error_msg)) {
echo $error_msg;
}
echo $response;

Jangan lupa ubah target dan tokennya lalu jalankan saja file tersebut di browser.

Kemudian, anda siap berangkat, pesan terkirim ke nomor target anda.

contoh proof of concept menggunakan PHP dan MYSQL


<?php

include 'koneksi.php';

//token device
$token = "xxx";


//fungsi kirim pesan
function Kirimfonnte($token, $data)
{
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://api.fonnte.com/send',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => array(
            'target' => $data["target"],
            'message' => $data["message"],
        ),
        CURLOPT_HTTPHEADER => array(
            'Authorization: ' . $token
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response; //log response fonnte
}

//ambil data user dari database
$res = mysqli_query($db, "SELECT * FROM user");
$row = mysqli_fetch_assoc($res);

$data = [
    "target" => $row["whatsapp"],
    "message" => "Halo " . $row["name"] . ", Terimakasih telah mendaftar di aplikasi kami"
];

//kirim pesan
Kirimfonnte($token, $data);

Kirim ke Whatsapp Group

Kamu bisa mengirim pesan ke individu maupun whatsapp group dengan mengisi targetnya.

untuk whatsapp group, kamu perlu mendapatkan id groupnya dulu.

kamu perlu memulai mengambil semua group whatsapp yang diikuti menggunakan fetch group.

gunakan fetch hanya ketika :

jangan request terus menerus, whatsapp mungkin melakukan banned untuk hal ini.

hanya setelah fetch sukses, kamu bisa menggunakan get group.

kamu bisa menggunakannya seperlunya, karena groupnya sudah berhasil di fetch dan tidak berinteraksi dengan server whatsapp lagi.

kemudian, kamu akan mendapatkan group idnya seperti : 120363379743282885@g.us dan id ini digunakan sebagai targetnya.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array(
'target' => '120363379743282885@g.us',
'message' => 'test message', 
),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN' //change TOKEN to your actual token
  ),
));

$response = curl_exec($curl);
if (curl_errno($curl)) {
  $error_msg = curl_error($curl);
}
curl_close($curl);

if (isset($error_msg)) {
 echo $error_msg;
}
echo $response;

Pesan Massal

catatan : sekarang ada metode yang lebih baik untuk mengatasi masalah ini. melihat cara baru.

Cara lama

Jika anda benar-benar ingin mengirim pesan massal, JANGAN GUNAKAN LOOP!

Kecuali anda ingin mengirim banyak url, anda dapat menggunakan loop.

Lalu bagaimana cara mengirim pesan massal tanpa loop?

Jangan khawatir, kami mendukung anda.

Cukup gunakan koma yang dipisahkan untuk setiap target.

Contoh : 081xxxxx,082xxxxx.

Ini kodenya

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.fonnte.com/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'target' => '08123456789,08987654321',
'message' => 'test message',
'delay' => '2',
'countryCode' => '62', //optional
),
CURLOPT_HTTPHEADER => array(
'Authorization: TOKEN' //change TOKEN to your actual token
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Anda hanya perlu memisahkan setiap target dengan koma.

Setel 'penundaan' sangat disarankan, di urutan kedua.

Pada contoh di atas pesan akan segera dikirim ke 628123456789 lalu tunggu 2 detik sebelum dikirim ke 628987654321.

cara baru

Anda sekarang dapat menggunakan parameter baru: data.

data parameter memungkinkan anda menggabungkan beberapa permintaan menjadi satu permintaan.

Anda dapat menggunakan hampir semua parameter yang tersedia.

dengan cara ini secara drastis mengurangi kebutuhan variabel dan anda dapat menentukan sendiri setiap pesan.

mari kita kodekan saja.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.fonnte.com/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('data' => '[{"target": "082227097005", "message": "1","delay":"1"},{"target": "082227097005,082227097005", "message": "2","delay":"2"},{"target": "082227097005", "message": "3","delay":"0"}]'
),
CURLOPT_HTTPHEADER => array(
'Authorization: TOKEN' //change TOKEN to your actual token
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

kode di atas akan segera mengirim pesan 1 -> tunggu 2 detik -> kirim pesan 2 -> tunggu 2 detik -> kirim pesan 2 -> kirim pesan 3

contoh proof of concept menggunakan PHP dan MYSQL

<?php

include 'koneksi.php';

//token device
$token = "xxx";


//fungsi kirim pesan
function Kirimfonnte($token, $data)
{
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://api.fonnte.com/send',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => array(
            'data' => $data['data'],
        ),
        CURLOPT_HTTPHEADER => array(
            'Authorization: ' . $token
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response; //log response fonnte
}

//ambil data user dari database
$res = mysqli_query($db, "SELECT * FROM user");

//looping data user
$alldata = [];
while ($row = mysqli_fetch_assoc($res)) {
    $data = [
        "target" => $row["whatsapp"],
        "message" => "Halo " . $row["name"] . ", Terimakasih telah mendaftar di aplikasi kami",
        "delay" => "1-3", //tambah delay agar tidak terlalu cepat
    ];
    array_push($alldata, $data);
}

//data yang akan dikirim
$data = [
    "data" => json_encode($alldata), //ubah array ke json (string)
];

//kirim pesan
Kirimfonnte($token, $data);

Pesan terjadwal

Pesan juga dapat dikirim dalam waktu yang dijadwalkan.

Teruskan parameter 'jadwal' dengan nilai stempel waktu unix ke detik, bukan ke milidetik.

Contoh : 1667433600 untuk 3 November 2022 12:00:00 (GMT +0)

Dalam waktu indonesia, waktu diatas akan berjalan pada :

Jadi ini kodenya

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.fonnte.com/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'target' => '08123456789',
'message' => 'test message',
'schedule' => 1667433600,
'countryCode' => '62', //optional
),
CURLOPT_HTTPHEADER => array(
'Authorization: TOKEN' //change TOKEN to your actual token
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Itu saja.

Pesan akan dikirim pada waktu yang dijadwalkan.

contoh proof of concept menggunakan PHP dan MYSQL

<?php

include 'koneksi.php';

//token device
$token = "xxx";


//fungsi kirim pesan
function Kirimfonnte($token, $data)
{
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://api.fonnte.com/send',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => array(
            'target' => $data['target'],
            'message' => $data['message'],
            'schedule' => $data['schedule'],
        ),
        CURLOPT_HTTPHEADER => array(
            'Authorization: ' . $token
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response; //log response fonnte
}

//ambil data user dari database
$res = mysqli_query($db, "SELECT * FROM user");

$row = mysqli_fetch_assoc($res);
$schedule = strtotime($row["schedule"] . $row["timezone"]);
$data = [
    "target" => $row["whatsapp"],
    "message" => "Halo " . $row["name"] . ", jangan lupa untuk mengikuti webinar hari ini ya",
    "schedule" => $schedule,
];

// kirim pesan
Kirimfonnte($token, $data);

Pesan Dinamis

Jadi setelah berhasil mengirim pesan, ada keinginan lain.

"Saya ingin mengirim pesan ini secara pribadi".

Tentu saja itu mungkin!

Opsi pertama adalah tidak menggunakan fitur API fonnte (tidak disarankan).

You are making n request to fonnte.

Meskipun fonnte tidak bermasalah, kami punya solusi yang lebih baik!

Opsi kedua adalah menggunakan fitur API fontnte (sangat disarankan).

Untuk mengirim pesan dinamis, anda dapat menggunakan variabel.

Untuk menggunakannya, anda perlu mengatur variabel pada 'target', dan menggunakan variabel pada 'pesan'

Ini kodenya

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.fonnte.com/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'target' => '08123456789|Fonnte|Admin,08987654321|Lily|Client',
'message' => 'test message to {name} as {var1}',
'delay' => '2',
'countryCode' => '62', //optional
),
CURLOPT_HTTPHEADER => array(
'Authorization: TOKEN' //change TOKEN to your actual token
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Kode tersebut akan mengirimkan pesan dengan penundaan 2 detik untuk setiap pesan

Pisahkan setiap variabel dengan pipa (|).

Variabel pertama akan menggunakan {name} dan sisanya menggunakan {var1},{var2},…

Ini bagus! anda dapat mengirim pesan yang dipersonalisasi sekaligus.

Berapa banyak saya dapat membuat variabel? sebanyak yang anda butuhkan, tentu saja!

Anda dapat mempelajarinya lebih lanjut di tentang variable.

Pesan Media

catatan : parameter ini hanya tersedia pada paket super/advanced/ultra.

Bisakah saya menambahkan pesan dengan lampiran seperti gambar? atau video? file seperti pdf, excel, dokumen? dan audio?

Ya, kamu bisa!

Url publik

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array(
'target' => '08123456789',
'message' => 'test message', 
'url' => 'https://md.fonnte.com/images/logo-dashboard.png', 
'filename' => 'my-file.pdf', //optional, only works on file and audio
'countryCode' => '62', //optional
),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN' //change TOKEN to your actual token
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Selesai, kini anda dapat mengirim pesan dengan gambar!

Berkas lokal

file lokal didukung menggunakan file parameter file

jalur harus benar jika tidak, anda akan mendapatkan error/kesalahan: operasi dibatalkan oleh panggilan balik.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array(
'target' => '08123456789',
'message' => 'test message', 
'file' => new CURLFile("localfile.png"), 
'filename' => 'my-file.pdf', //optional, only works on file and audio
'countryCode' => '62', //optional
),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN' //change TOKEN to your actual token
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Selesai, kini anda dapat mengirim file melalui file lokal anda sendiri.

Unggahan formulir

Anda juga dapat mengirim langsung dari unggahan formulir.

ini sangat bermanfaat karena anda tidak perlu menyimpannya ke lokal/server anda terlebih dahulu.

<?php
//logic
$file = $_FILES["file"]["tmp_name"]; //change "file" with your actual file input name tag
$name = $_FILES["file"]["name"];
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array(
'target' => '08123456789',
'message' => 'test message', 
'file' => new CURLFile($file, '', $name), 
'filename' => 'my-file.pdf', //optional, only works on file and audio
'countryCode' => '62', //optional
),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN' //change TOKEN to your actual token
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Anda dapat menggunakan fonnte api sesuai kebutuhan anda.

Contoh proof of concept menggunakan PHP dan MYSQL

<?php

include 'koneksi.php';

$url = "files/Sertifikat.pdf";
$filename = "Sertifikat1.pdf";
if (isset($_POST["submit"])) {
    $url = $_FILES['file']['tmp_name'];
    $filename = $_FILES['file']['name'];
}

//token device
$token = "xxx";


//fungsi kirim pesan
function Kirimfonnte($token, $data)
{
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://api.fonnte.com/send',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => $data,
        CURLOPT_HTTPHEADER => array(
            'Authorization: ' . $token
        ),
    ));

    $response = curl_exec($curl);

    if (curl_errno($curl)) {
        echo 'Error:' . curl_error($curl);
    }

    curl_close($curl);
    echo $response; //log response fonnte
}

//ambil data user dari database
$res = mysqli_query($db, "SELECT * FROM user WHERE id = 1");

$row = mysqli_fetch_assoc($res);
$data = [
    "target" => $row["whatsapp"],
    "message" => "Halo " . $row["name"] . ", berikut sertifikat kamu ya",
    // "url" => $row["url"],
    "file" => new CURLFile($url, "", $filename)
];

// kirim pesan
Kirimfonnte($token, $data);

?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form</title>
</head>

<body>
    <form action="" method="POST" enctype="multipart/form-data">
        <input type="file" name="file" id="file">
        <button type="submit" name="submit">Kirim</button>
    </form>
</body>

</html>

3 jenis pesan berikutnya digunakan untuk tujuan interaktif. (tidak digunakan lagi)

Pesan Tombol (Tidak Digunakan Lagi)

This feature has been deprecated and no longer maintained

What is button message?

Itu pesan tombol.

Ini lebih interaktif daripada berharap pengguna merespons dalam teks.

Untuk mengirim pesan ini, anda perlu membuat array multidimensi, lalu menyandikannya menjadi json.

Catatan: maks 3 tombol

inilah kodenya

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array(
'target' => '08123456789',
'url' => 'https://md.fonnte.com/images/logo-dashboard.png', 
'buttonJSON' => '{"message":"fonnte button message","footer":"fonnte footer message","buttons":[{"id":"mybutton1","message":"hello fonnte"},{"id":"mybutton2","message":"fonnte pricing"},{"id":"mybutton3","message":"tutorial fonnte"}]}', 
'countryCode' => '62', //optional
),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN' //change TOKEN to your actual token
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Anda tentu saja dapat menambahkan url, tetapi terbatas pada gambar dan video saja.

Pesan Templat (Tidak Digunakan Lagi)

Fitur ini sudah tidak digunakan lagi dan tidak lagi dipertahankan

Tombol template jauh lebih interaktif dari sekedar tombol pesan.

Sayangnya, API kami belum bisa mengirimkan tipe ini ke iOS.

Jenis pesan ini mendukung panggilan dan tautan.

Yang lainnya hanyalah tombol biasa.

Catatan: maks 3 tombol

Lalu bagaimana cara mengirimkannya?

Ini kodenya

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array(
'target' => '08123456789',
'templateJSON' => '{"message":"fonnte template message","footer":"fonnte footer message","buttons":[{"message":"fonnte","url":"https://fonnte.com"},{"message":"call me","tel":"6282227097005"},{"id":"mybutton1","message":"hello fonnte"}]}', 
'countryCode' => '62', //optional
),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN' //change TOKEN to your actual token
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Templat belum mendukung media apa pun.

Jadi anda hanya dapat mengirim teks biasa dengan itu.

Daftar Pesan (Tidak Digunakan Lagi)

Fitur ini sudah tidak digunakan lagi dan tidak lagi dipertahankan

Pesan daftar adalah jenis pesan lain yang memungkinkan anda membuat banyak tombol, bukan hanya 3.

Dan ketika anda mengklik tombol, popup ini muncul.

Ini bagus! anda dapat memberi pengguna anda banyak pilihan.

Dan yang lebih baik lagi, ia memiliki grup dan deskripsi untuk memudahkan pemahaman pilihan.

Ini kodenya

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array(
'target' => '08123456789',
'listJSON' => '{"message":"fonnte list message","footer":"fonnte footer message","buttonTitle":"fonnte's packages","title":"fonnte title","buttons":[{"title":"text only","list":[{"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":[{"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"}]}]}', 
'countryCode' => '62', //optional
),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN' //change TOKEN to your actual token
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Dengan ini, anda dapat mengirim pesan daftar dan menunggu balasan.

Lokasi

Lokasi dapat dikirim menggunakan latitude and longitude.

formatnya seharusnya latitude,longitude.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array(
'target' => '08123456789',
'location' => '-7.983908, 112.621391',

),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN' //change TOKEN to your actual token
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Anda dapat mengubah nilai lokasi dengan lokasi yang anda inginkan.

Pemilihan

Anda dapat mengirim pesan polling whatsapp ke penerima anda.

Poll dapat dikirim ke kelompok atau individu.

Screenshot_150
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('target' => '082227097005','message' => 'test dari postman','choices' => 'satu,dua,tiga','select' => 'single','pollname' => 'pollku'),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Anda dapat mengubah data sesuai kebutuhan pribadi anda.

Menindaklanjuti

Anda dapat mengirim whatsapp sebagai tindak lanjut dari aplikasi anda sendiri.

Lebih mudah lagi karena Fonnte menyediakan API untuk itu.

Sebenarnya tindak lanjut ini mirip dengan fitur jadwal.

Perbedaannya adalah:

  1. ini disederhanakan dengan menambahkan hanya detik, bukan keseluruhan unix timestamp
  2. Ini bekerja dengan jadwal. anda dapat mengatur tindak lanjut dengan jadwal

Tujuan utamanya adalah tindak lanjut ini memungkinkan anda untuk menindaklanjuti tindakan apa pun, kemungkinan besar pada pengiriman formulir.

Jadi daripada menjadwalkannya, tambahkan saja waktunya.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('target' => '082227097005','message' => 'test dari local','followup' => 60),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Kode ini akan mengirimkan pesan 1 menit setelah diminta ke fonnte.

Urutan

Anda dapat mengubah perilaku pengiriman pesan secara berurutan.

ini berarti, urutan pesan itu penting.

itu semudah menambahkan 'urutan' => benar.

parameter ini berfungsi baik pada data atau target.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('data' => '[
{"target": "082227097005", "message": "1","delay" : "0"},
{"target": "082227097005", "message": "2","delay" : "0"},
{"target": "082227097005", "message": "3","delay" : "0","url":"https://fonnte.com/wp-content/uploads/2023/03/Logo-Fonnte-1536x368.png"},
{"target": "082227097005", "message": "4","delay" : "0"},
{"target": "082227097005", "message": "5","delay" : "0"}
]',
'sequence'=>true),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Kode ini akan mengirimkan pesan secara berurutan: a,b,c,d,e

Kesimpulan

Fonnte menyediakan banyak konfigurasi untuk membuat API sefleksibel mungkin.

Jika anda bukan seorang programmer atau bingung bagaimana melakukannya, anda dapat menyewa seorang programmer atau cukup gunakan dashboard Fonnte untuk kirim pesan whatsapp.

Kami telah membahas semua cara untuk mengirim pesan di dasbor kami.

Pada akhirnya, tidak hanya untuk mengirim saja, anda juga bisa membalas pesan tersebut.

Kita akan membahasnya di tutorial autoreply cara membuat bot obrolan whatsapp.

Dalam proses bisnis, membuat pelanggan menunggu berarti berkemungkinan prospek hilang.

Terkadang pelanggan hanya ingin tahu tentang FAQ dan mereka terlalu malas untuk membaca di web.

Lebih mudah bertanya daripada membaca.

Jadi, membuat bot chat whatsapp sangat penting untuk bisnis anda.

Fonnte memberikan cara membuat bot whatsapp dengan mudah.

Balasan otomatis

Setiap perangkat dapat diatur menjadi chatbot.

Anda perlu mengaktifkan autoread pada menu perangkat->edit.

Fonnte menyediakan menu untuk membuat bot ini.

Anda dapat mengakses menu ini dengan login to fonnte

Masuk ke menu autoreply, maka anda akan melihat form ini

Image

Anda dapat membuat beberapa istilah obrolan masuk di kolom pesan.

Responsnya bisa berupa teks, teks dengan file, atau tombol interaktif.

Itu saja!

Pelajari lebih lanjut tentang ini autoreply dan button.

Kesimpulan

Dengan fitur ini, anda dapat membuat chatbot statis.

Penggunaan terbaik untuk fitur ini adalah untuk menyajikan informasi statis seperti FAQ.

Jika entah bagaimana anda ingin membuat bot whatsapp lebih dinamis, anda dapat menggunakan fitur kami yang lain, namanya webhook.

Cara membuat bot whatsapp dinamis akan kami bahas pada tutorial berikutnya.

Chatbot statis berguna bagi pengguna yang bertanya yang hanya menginginkan informasi.

Namun untuk informasi yang dinamis, dashboard Fonnte tidak dapat membantu anda lebih jauh.

Kalau begitu, di sinilah webhook kita bersinar!

Anda bisa mendapatkan semua informasi yang anda perlukan dari database anda sendiri dengan webhook.

Tutorial ini mengharuskan anda memahami bahasa pemrograman dasar terutama PHP. Jika anda tidak memiliki pengalaman atau tidak tahu apa yang harus dilakukan, harap pertimbangkan untuk menyewa seorang pengembang.

Catatan khusus : fitur balasan otomatis apa pun tidak akan berfungsi jika anda menggunakan webhook.

Prerequisite

Sebelum anda dapat menggunakan webhook ini, anda perlu melakukannya membuat akun, masuk dan buat perangkat.

Salin token sebagai kunci API untuk digunakan di webhook.

Kemudian, menghubungkan perangkat Anda terlebih dahulu sebelum anda dapat melanjutkan untuk mengirim pesan.

Silakan gunakan curl terbaru dengan versi php 7.1++ sebagai requirement.

Kode webhook

Jadi membuat chatbot whatsapp menggunakan webhook fonnte akan memungkinkan anda menggunakan data database anda sendiri.

Jangan khawatir, kami tidak dapat mengakses database anda.

Semuanya dikodekan di server anda sendiri.

Satu-satunya yang kami butuhkan adalah url file anda.

Pertama, salin kode ini

<?php
header('Content-Type: application/json; charset=utf-8');

$json = file_get_contents('php://input');
$data = json_decode($json, true);
$device = $data['device'];
$sender = $data['sender'];
$message = $data['message'];
$member= $data['member']; //group member who send the message
$name = $data['name'];
$location = $data['location'];
//data below will only received by device with all feature package
//start
$url =  $data['url'];
$filename =  $data['filename'];
$extension=  $data['extension'];
//end

function sendFonnte($target, $data) {
	$curl = curl_init();

	curl_setopt_array($curl, array(
	  CURLOPT_URL => "https://api.fonnte.com/send",
	  CURLOPT_RETURNTRANSFER => true,
	  CURLOPT_ENCODING => "",
	  CURLOPT_MAXREDIRS => 10,
	  CURLOPT_TIMEOUT => 0,
	  CURLOPT_FOLLOWLOCATION => true,
	  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	  CURLOPT_CUSTOMREQUEST => "POST",
	  CURLOPT_POSTFIELDS => array(
	    	'target' => $target,
	    	'message' => $data['message'],
	    	'url' => $data['url'],
	    	'filename' => $data['filename'],
	    ),
	  CURLOPT_HTTPHEADER => array(
	    "Authorization: TOKEN"
	  ),
	));

	$response = curl_exec($curl);

	curl_close($curl);

	return $response;
}

if ( $message == "test" ) {
	$reply = [
		"message" => "working great!",
	];
} elseif ( $message == "image" ) {
	$reply = [
		"message" => "image message",
		"url" => "https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg",
	];
} elseif ( $message == "audio" ) {
	$reply = [
	        "message" => "audio message",
		"url" => "https://filesamples.com/samples/audio/mp3/sample3.mp3",
		"filename" => "music",
	];
} elseif ( $message == "video" ) {
	$reply = [
		"message" => "video message",
		"url" => "https://filesamples.com/samples/video/mp4/sample_640x360.mp4",
	];
} elseif ( $message == "file" ) {
	$reply = [
		"message" => "file message",
		"url" => "https://filesamples.com/samples/document/docx/sample3.docx",
		"filename" => "document",
	];
} else {
	$reply = [
		"message" => "Sorry, i don't understand. Please use one of the following keyword :
		    
Hello
Audio
Video
Image
File",
];
}

sendFonnte($sender, $reply);

Fungsi sendFonnte dapat menggunakan parameter API apa pun yang tersedia fonnte's API.

Anda bisa mendapatkan data dari database dan ditetapkan sebagai pesan balasan.

Kedua, simpan kode ini dan masukan file url publik absolut ke masukan webhook.

Contohnya : https://fonnte.com/urlwebhook.php

Itu terletak di menu perangkat->edit.

Bagian terakhir dan terpenting adalah mengaktifkan autoread.

Itu terletak di bawah masukan webhook.

Itu saja, bot whatsapp anda sekarang siap membalas dengan data dinamis.

Sebelum anda dapat mengirim pesan ke grup whatsapp, anda harus mengetahui grup mana yang akan dikirim.

Untuk mendapatkan semua grup yang anda ikuti, ada 2 langkah yang harus dilakukan.

Pertama, perbarui semua daftar grup anda.

Kemudian, dapatkan semua daftar id grup anda dan gunakan sebagai target.

Perbarui daftar grup whatsapp

API ini digunakan untuk memperbarui semua grup anda.

API ini hanya boleh dipanggil sekali: saat anda bergabung dengan grup baru atau belum pernah memanggil API ini.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/fetch-group',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Baca lagi tentang API update whatsapp group.

Kemudian anda dapat menggunakan API dapatkan grup whatsapp untuk mendapatkan semua id grup.

Dapatkan daftar grup whatsapp

API ini akan memberi anda daftar semua grup whatsapp yang diperbarui seperti yang diperbarui sebelumnya menggunakan daftar grup whatsapp pembaruan API.

API ini tidak akan mengembalikan apa pun jika anda belum pernah memperbarui grup whatsapp

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/get-whatsapp-group',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Anda sekarang bisa mendapatkan id dan nama grup.

Id grup akan digunakan sebagai target di kirim pesan API.

Menu ini memberikan informasi tentang perangkat anda.

Image

Sorotan perangkat

Bagian sorotan perangkat memberikan informasi cepat tentang perangkat anda

Kemudian pada menu perangkat, anda dapat melihat semua perangkat anda

Image

Seperti yang anda lihat pada gambar di atas, ada 3 bagian yang bisa anda gunakan

Tambahkan Perangkat

Di kanan atas gambar, ada tombol untuk menambahkan perangkat.

Klik tombol ini dan isi formulir.

Image

Tombol Penyaring

Yang kedua adalah tombol filter. Tombol-tombol ini sebenarnya tidak bermanfaat bagi anda jika perangkat anda sedikit. ada 5 tombol untuk memfilter perangkat anda

Daftar Perangkat

Bagian terakhir adalah daftar perangkat. semua perangkat anda akan tercantum di sini.

Saat anda mengklik pesan, popup ini akan muncul

Image

Anda dapat memilih paket apa saja yang tersedia dan memilih apakah bulanan atau tahunan.

Saat anda mengklik edit, popup ini akan muncul

Image

Anda dapat mengedit nama, webhook, dan pengaturan autoread.

Menu ini digunakan untuk menambahkan kontak dan mengelompokkannya.

Image

Kontak

Anda dapat menambahkan kontak untuk digunakan nanti atau mengelompokkannya dalam satu grup

Image

Anda dapat menambahkan kontak anda, dipisahkan dengan baris baru.

Contoh :

0822xxxxxx
0895xxxxxx

Masukan ini akan menyimpan 2 kontak

Anda juga dapat menambahkan variabel ke setiap kontak.

Saat ini, fonnte mendukung variabel tidak terbatas.

Variabel pertama adalah nama kontak.

Contoh :

Image

Ini akan disimpan sebagai:

081xxxxxxx
nama : Fonnte
var1 : Indonesia

082xxxxxx
nama : Fonnte
var1 : Indonesia

Variabel-variabel ini dapat digunakan untuk mengirim pesan menggunakan {name},{var1},{var2} dan seterusnya

jika anda telah membuat setidaknya satu grup, anda dapat memasukkan kontak yang diunggah ke grup tersebut.

Image

Setelah anda menyimpan kontak, itu akan muncul di daftar kontak.

Anda dapat mengedit atau menghapusnya.

Sebuah popup akan muncul ketika anda mengklik edit.

Image

Anda dapat mengedit nomor, nama, menambah atau menghapus dari grup dan mengatur variabel.

Variabel harus dipisahkan dengan baris/enter baru.

Grup

Anda dapat membuat grup untuk mengelompokkan kontak anda untuk mengirim pesan ke kontak tersebut nanti.

Image

Setelah berhasil membuat grup, grup tersebut akan kami tambahkan ke daftar grup.

Image

Untuk menambahkan kontak ke grup yang sudah ada, anda dapat mengklik edit pada grup dan menambahkan kontak.

Image

Ini mungkin cara yang nyaman untuk mengirim pesan di kemudian hari.

Anda dapat mengirim pesan menggunakan menu ini.

Untuk menggunakan menu ini, anda harus menghubungkan perangkat anda terlebih dahulu.

Image

Pertama-tama, formulir ini mendukung banyak konfigurasi, sehingga terlihat membingungkan pada awalnya.

Jangan khawatir, bidangnya akan dibahas satu per satu.

Perangkat

Bidang ini akan menampilkan semua perangkat anda yang terhubung. Pastikan anda memilih yang tepat.

Perangkat yang terputus tidak akan ditampilkan

Pilih Target

Bidang ini merupakan pilihan bagaimana anda akan memasukkan target.

Secara default, field akan memilih input, artinya anda harus memasukkan target secara manual.

Image

Kemudian anda dapat memasukkan target anda.

Jika suatu saat anda perlu mengirim ke lebih dari 1 target, pisahkan setiap target dengan baris baru/enter.

Bidang ini juga mendukung variabel. gunakan | untuk menambahkan variabel

Contoh :

081xxxxxxx|Fonnte|Indonesia

Ini akan menghasilkan variabel {name} dan {var1} yang dapat anda gunakan pada kolom pesan.

Kedua, pilih target dari kontak.

Image

Dengan cara ini, anda dapat mengirim ke kontak tempat anda menyimpan contact menu.

Ketiga, anda dapat memilih untuk mengirim ke grup kontak yang anda buat contact menu.

Image

Lebih mudah mengirim ke banyak kontak dalam satu grup.

Negara

Bidang ini digunakan untuk menggantikan angka nol pertama dengan kode negara. (opsional)

Misalnya di Indonesia kebanyakan orang menggunakan 081xxxxxx, maka fonnte akan mengganti kontak menjadi 6281xxxxx.

tentu saja anda dapat mengabaikannya dan menulis nomor lengkap dengan kode negara.

Menunda

Field ini digunakan untuk menunda pengiriman pesan jika ada lebih dari 1 kontak.

Secara default, diperlukan waktu 5 detik untuk mengirim di antara keduanya.

File

Field ini digunakan untuk mengunggah media yang akan dikirim dengan/tanpa konteks pesan.

Hanya paket dengan dukungan media yang dapat mengirim media.

Pertimbangkan file limitation aturan saat mengirim lampiran.

Jadwal

Bidang ini digunakan bila anda ingin mengirim pesan nanti.

Anda dapat mengatur waktu pengiriman dengan kolom ini.

Sumber Pesan

Bidang ini digunakan untuk memilih bagaimana anda akan mengirim pesan.

Anda dapat memilih input secara manual atau menggunakan template.

Secara default, bidang ini akan memilih masukan.

Image

Dengan ini, anda dapat memasukkan pesan secara manual.

Anda juga dapat menggunakan variabel dalam pesan.

Jika anda memilih template, anda dapat menggunakan template apa pun yang anda buat di menu template.

Image

Mengirim

Bidang ini digunakan untuk memilih antara pengiriman sekali atau pengulangan selama jangka waktu tertentu.

Secara default, bidang ini dipilih satu kali.

Jika anda memilih untuk mengirim setiap jangka waktu, anda dapat memilih jangka waktu yang anda buat pada menu berulang.

Dengan ini, pesan akan dikirim setiap periode waktu yang ditentukan.

Image

Anda dapat mendaftarkan akun disini

Image

kolom registrasi adalah nomor whatsapp, nama dan kode negara.

setelah mendaftar, anda akan diarahkan ke whatsapp untuk mengirimkan kode registrasi.

lanjutkan untuk mengirim menggunakan nomor registrasi yang sama

jika entah bagaimana dilewati atau nomor sudah terdaftar, coba setel ulang kata sandi.

jika tidak bisa mendaftar, silakan coba lagi jam berikutnya.

Anda akan mendapatkan pesan whatsapp tentang akun dan kata sandi anda, dan diarahkan ke login page.

Diperlukan akun sebelum anda dapat login. jika anda belum memilikinya, silakan mendaftar terlebih dahulu.

Anda bisa masuk disini.

Image

bidangnya adalah nomor akun (nomor whatsapp), kata sandi, kode negara.
setelah login, akan diarahkan ke dashboard.
jika kredensial tidak valid, kata sandi atau nomor akun salah.
coba setel ulang kata sandi.

Jika anda lupa kata sandi, anda selalu bisa mengatur ulang kata sandi.

Anda dapat mengatur ulang kata sandi anda here.

Image

bidangnya adalah nomor akun (nomor whatsapp) dan kode negara.
Anda akan menerima kata sandi baru.
jika error tidak bisa kirim password baru, coba daftar ulang.

Anda akan mendapatkan kata sandi baru anda melalui pesan whatsapp.

Made with in Indonesia