Cara Mengirim dan Membaca Pesan WhatsApp di Terminal | Tegal1337


Selamat malam semua.. kali ini saya ingin menyempatkan menulis tutorial cara mengirim dan membaca pesan whatsapp kita di terminal linux maupun termux di android. Sama halnya WhatsApp versi CLI.

Kita akan menggunakan PHP sebagai bahasa pemrogramanya dan menggunakan API sebagai akses pihak ketiga aplikasi whatsapp nya.

Pertama daftar dulu di website yang menyediakan API whatsapp. disini saya memilih rapiwha.com, nantinya kita akan mendapatkan akun trial yang memiliki saldo sekitar $10. Jika teman-teman tahu tentang penyedia API lain yang gratis silahkan komentar dibawah ya..

Jika sudah mendaftar nantinya kita akan memperoleh sebuah API Key. catat API Key tersebut karena ini merupakan kunci keberhasilan program kita.

Yuk mulai membuat program :D

Pertama menentukan define dari apikey. Kenapa gak pake variabel aja min ? tergantung kebutuhan juga sih.. karena saya disini hanya menggunakan satu whatsapp saja. Jika kalian menggunakan banyak akun whatsapp bisa ganti dengan variabel.

define("APIKEY", "Paste API Key disini");

Selanjutnya membuat fungsi color() agar tampilanya agak menarik nantinya, kita gunakan array untuk menampung berbagai warna

function color($color = "default" , $text){
    $arrayColor = array(
        'grey'         => '1;30',
        'red'         => '1;31',
        'green'     => '1;32',
        'yellow'     => '1;33',
        'blue'         => '1;34',
        'purple'     => '1;35',
        'nevy'         => '1;36',
        'white'     => '1;0',
    );   
    echo "\033[".$arrayColor[$color]."m".$text."\033[0m";
}
Membuat fungsi memuat(), sampai disini kita sudah masuk ke perulangan, kita gunakan foreach untuk mengambil data yang berbentuk array

contoh data array yang didapat :

[{

    "id": "7797",

    "number": "[YOUR NUMBER]",

    "from": "[FROM NUMBER]",

    "to": "[TO NUMBER]",

    "type": "IN",

    "text": "I need to know your pricing list",   

    "creation_date": "2017-03-18 14:49:23"

    "process_date": "2017-03-18 14:49:23",

    "custom_data": null

},

{

    "id": "7798",

    "number": "[YOUR NUMBER]",

    "from": "[FROM NUMBER]",

    "to": "[TO NUMBER]",

    "type": "OUT",   

    "text": "Our pricing list is in our Web site http://my.beautiful-site.com!",

    "creation_date": "2017-03-18 14:51:08"

    "process_date": "2017-03-18 14:51:15",

    "custom_data": "1234"

}]

Kita hanya akan mengambil path from, text, creation_date, type, to untuk ditampilkan di output. Makanya kodenya seperti berikut :

function memuat(){

    $get = ambil_pesan();

    if (!$get) {

        color("red"," [Failed]");

        color("white","Connecttion Timeout\n");

    }

    foreach ($get as $data) {

    $dari = $data['from'];

    $pesan = utf8_decode($data['text']);

    $dikirim = $data['creation_date'];

    $type = $data['type'];

    $penerima = $data['to'];

        if($type=="IN"){

        color("green"," [Dikirim ({$dikirim})] Pesan : {$pesan} Dari {$dari}\n");

        } else {

        color("purple"," [Terkirim ({$dikirim})] Pesan : {$pesan} Ke {$penerima}\n");

        }

    }

}

Membuat fungsi mengirim pesan

function kirim_pesan(){

    color("nevy"," Nomor Tujuan (62): ");

    $nomor = trim(fgets(STDIN));

    color("nevy"," Pesan : ");

    $pesan = trim(fgets(STDIN));

    $data = array(

        "apikey" => APIKEY,

        "number" => $nomor,

        "text" => $pesan

    );

    $respon = json_decode(file_get_contents("http://panel.apiwha.com/send_message.php?".http_build_query($data)),1);

    if(!$respon){

        color("red"," [Failed]");

        color("white","Connecttion Timeout\n");

    }

    $pesanx = $respon['description'];

    if($respon['result_code']==0){

        color("green"," [Sukses] {$pesanx} \n");

    } else {

        color("red"," [Gagal] {$pesanx}\n");

    }

}
Memaggil fungsi diatas, kita gunakan perulangan lagi tapi menggunakan while
karena disini kita akan memanggil dua fungsi yaitu memuat() dan kirim_pesan()

while (true) {

    color("nevy","[ExWA]-> ");

    $command = trim(fgets(STDIN));

    if(strstr("--show", $command) or strtr("show", $command)) {

        memuat();

    }elseif(strstr("--kirim", $command) or strtr("kirim", $command)) {

        kirim_pesan();

    }else {

        echo "Gk iso moco ? /n";;

    }

}
Logikanya begini, jika kita menuliskan "--show / show" makan fungsi memuat() yang akan di jalankan, dan jika kita menuliskan "--kirim / kirim" maka fungsi kirim_pesan() yang akan dijalankan, Tetapi jika tidak keduanya maka akan muncul pesan "Gk iso moco ?"

Untuk source lengkapnya kalian bisa chek di github saya
https://github.com/dalpan/ExWA

Mungkin itu saja yang bisa saya jelaskan, kurang lebihnya mohon dimafaatkan ya sekian :)

Comments

Popular posts from this blog

[BUG BOUNTY] Email Spoofing | No Valid SPF Record

Legion Tutorial - Information Gathering (Kali Linux)

Deface web with auto sql balitbang method