Belajar Membuat Bot Menggunakan Bahasa Pemrograman C++

Beberapa waktu nan silam saya merilis sebuah library dengan nama WhatsApp NET Client. Library ini adalah
hadiah
dari saya
:grin:
untuk musuh-teman .Serok Developer nan cak hendak membuat petisi yang dapat berkomunikasi dengan permohonan WhatsApp Web secara mudah.

Dengan menggunakan library ini Anda dapat dengan mudah membuat tuntutan:

  • WhatsApp Blast
  • WhatsApp Bot
  • Dan Permintaan WhatsApp klien lainnya

Jadi dipostingan kali ini kita akan memahas bagaimana mudahnya menciptakan menjadikan tuntutan WhatsApp Bot dengan menunggangi library WhatsApp NET Client. Jadi Kamu bukan terbiasa lagi memikirkan bagaimana caranya berkomunikasi dengan WhatsApp web sehingga bisa lebih fokus ke proses memikul atau logic aplikasi yang ingin dikembangkan.

Ok untuk contoh kasusnya kita akan membuat WhatsApp Bot dengan tema
Tes Online Bahasa Inggris. Di pengecekan online ini kita akan menjawab soalnya bahasa inggris dengan sortiran ganda.

Database

Pertama kita rancang lalu databasenya dan berhubung dulu saya kembali pernah menulis postingan tentang database SQLite makara untuk databasenya kita menggunakan SQLite saja.

SQLite ialah database standalone yang kecil, kecil dan gratis. Bagaimana cara takhlik database di SQLite telah saya bahas lagi di sini kemudian bagaimana mengaksesnya berusul permohonan pula sudah lalu saya bahasa di sini.

Berikut ialah rancangan sederhana database konfirmasi online bahasa inggris yang akan kita lakukan :

Mengakses WhatsApp Web

Terserah banyak cara agar aplikasi kita berkomunikasi dengan WhatsApp Web, yang pertama bisa dengan menggunakan Selenium WebDriver secara sambil, tapi tentunya cara ini (menggunakan Selenium WebDriver) bukan prinsip nan favorit dikalangan programmer instan seperti Anda dan Saya
:grin:, jadi dipostingan ini saya menunggangi library siap pakai seperti WhatsApp Kisa Client yang bisa dengan mudah berkomunikasi dengan WhatsApp Web.

Ingat library ini yakni library gratis, segala resiko (kemudahan dalam menciptakan menjadikan aplikasi WhatsApp Bot) silahkan ditanggung seorang
:grin:.

WhatsApp Jaring Client

WhatsApp NET Client ialah library gratis lakukan .Sauk-sauk Developer yang digunakan untuk mengembangkan petisi WhatsApp klien berbasis desktop. Library ini dikembangkan di atas teknologi .Seser dengan menggunakan bahasa pemrograman C#, sehingga bisa juga digunakan lakukan semua bahasa pemrograman .NET selain C# seperti VB.Kisa, F#, C++ dan bahasa .Kisa lainnya.

WhatsApp NET Client mempunyai bilang fungsi standard seperti membaca/membalas pesan yang masuk. Sehingga dengan adanya fitur ini kita bisa dengan mudah takhlik aplikasi seperti mana WhatsApp Bot.

Berikut yakni beberapa cuplikan kode bikin membuat aplikasi WhatsApp Bot menggunakan library WhatsApp NET Client:

1. Mengakses WhatsApp Web

Langkah pertama yang harus kita lakukan adalah mengakses WhatsApp Web sinkron dari library WhatsApp Bantau Client. Untuk mengakses WhatsApp Web kita memadai menyebut method
Connect
berbunga target WhatsApp NET Client.

          
            private
            IWhatsAppNETAPI
            _whatsAppApi
            ;
            // deklarasi objek WhatsApp Serok Client
            private
            void
            btnStart_Click
            (
            object
            sender
            ,
            EventArgs
            e
            )
            {
            _whatsAppApi
            =
            new
            WhatsAppNETAPI
            .
            WhatsAppNETAPI
            ();
            var
            url
            =
            "https://web.whatsapp.com"
            ;
            using
            (
            new
            StCursor
            (
            Cursors
            .
            WaitCursor
            ,
            new
            TimeSpan
            (
            0
            ,
            0
            ,
            0
            ,
            0
            )))
            {
            // bentang chrome web browser cak bagi menjalankan WhatsApp Web
            if
            (
            _whatsAppApi
            .
            Connect
            (
            url
            ))
            {
            while
            (!
            _whatsAppApi
            .
            OnReady
            ())
            {
            Thread
            .
            Sleep
            (
            1000
            );
            }
            // subscribe event OnMessageRecieved
            
            _whatsAppApi
            .
            OnMessageRecieved
            +=
            OnMessageRecievedEventHandler
            ;
            _whatsAppApi
            .
            MessageSubscribe
            ();
            btnStart
            .
            Enabled
            =
            false
            ;
            btnStop
            .
            Enabled
            =
            true
            ;
            }
            else
            _whatsAppApi
            .
            Disconnect
            ();
            }
            }
          
        

2. Subcribe/listen pesan yang masuk

Bagi subcribe/listen pesan nan timbrung kita cukup menambahkan kode berikut:

          
            _whatsAppApi
            .
            OnMessageRecieved
            +=
            OnMessageRecievedEventHandler
            ;
            _whatsAppApi
            .
            MessageSubscribe
            ();
          
        

Kode di atas di panggil puas saat user menindihkan cembul Start (Langkah 1 – Mengakses WhatsApp Web). Kerjakan keperluan subscribe event
OnMessageRecieved
ini, kita perlu menyempatkan method event handler yang akan merespon ketika event
OnMessageRecieved
tersebut aktif.

          
            private
            void
            OnMessageRecievedEventHandler
            (
            MsgArgs
            e
            )
            {
            var
            user
            =
            new
            User
            {
            user_id
            =
            e
            .
            Sender
            };
            var
            chat
            =
            new
            Chat
            {
            user_id
            =
            e
            .
            Sender
            ,
            text
            =
            e
            .
            Msg
            };
            var
            msgToReplay
            =
            string
            .
            Empty
            ;
            AutoReplay
            (
            user
            ,
            chat
            ,
            ref
            msgToReplay
            );
            _whatsAppApi
            .
            SendMessage
            (
            new
            MsgArgs
            (
            e
            .
            Sender
            ,
            msgToReplay
            ));
            }
          
        

Saat method ini dijalankan, di dalamnya kita akan melakukan parsing pesan yang timbrung, mengolahnya, dan kemudian mengirimkan akhirnya dengan memanggil method
SendMessage.

3. Memparsing wanti-wanti yang masuk kemudian membalasnya

Persiapan berikutnya yakni menyiapkan method yang bertugas untuk memparsing pesan yang masuk.

          
            private
            void
            AutoReplay
            (
            User
            user
            ,
            Chat
            chat
            ,
            ref
            string
            msgToReplay
            )
            {
            if
            (
            chat
            .
            text
            .
            Length
            >
            0
            )
            {
            var
            splitPesan
            =
            chat
            .
            text
            .
            Split
            (
            ' '
            );
            var
            keyword
            =
            splitPesan
            [
            0
            ];
            var
            param
            =
            string
            .
            Empty
            ;
            if
            (
            splitPesan
            .
            Count
            ()
            >
            1
            )
            param
            =
            splitPesan
            [
            1
            ];
            SaveUser
            (
            user
            );
            SaveChat
            (
            chat
            );
            var
            perintahBot
            =
            new
            PerintahBot
            ();
            switch
            (
            keyword
            .
            ToLower
            ())
            {
            case
            "/about"
            :
            msgToReplay
            =
            string
            .
            Dimensi
            (
            ABOUT
            ,
            _currentVersion
            ,
            AUTHOR
            ,
            EMAIL
            ,
            URL
            );
            break
            ;
            case
            "/bantuan"
            :
            msgToReplay
            =
            string
            .
            Format
            (
            BANTUAN
            ,
            _currentVersion
            ,
            AUTHOR
            ,
            EMAIL
            ,
            URL
            );
            break
            ;
            case
            "/mulai"
            :
            perintahBot
            .
            Mulai
            (
            user
            .
            user_id
            ,
            ref
            msgToReplay
            );
            break
            ;
            case
            "/soal"
            :
            perintahBot
            .
            Soal
            (
            user
            .
            user_id
            ,
            ref
            msgToReplay
            );
            break
            ;
            case
            "/soalterakhir"
            :
            perintahBot
            .
            SoalTerakhir
            (
            user
            .
            user_id
            ,
            ref
            msgToReplay
            );
            break
            ;
            case
            "/jawab"
            :
            perintahBot
            .
            Jawab
            (
            user
            .
            user_id
            ,
            param
            ,
            ref
            msgToReplay
            );
            break
            ;
            case
            "/batal"
            :
            perintahBot
            .
            Batal
            (
            user
            .
            user_id
            ,
            ref
            msgToReplay
            );
            break
            ;
            case
            "/radu"
            :
            perintahBot
            .
            Selesai
            (
            user
            .
            user_id
            ,
            ref
            msgToReplay
            );
            break
            ;
            default
            :
            msgToReplay
            =
            string
            .
            Dimensi
            (
            PERINTAH_SALAH
            ,
            keyword
            .
            ToLower
            ());
            break
            ;
            }
            Console
            .
            WriteLine
            (
            "msgToReplay: {0}"
            ,
            msgToReplay
            );
            }
            }
          
        

Kemudian method ini kita panggil melangkahi method
OnMessageRecievedEventHandler.

Terakhir cak bagi menutup komunikasi ke WhatsApp Web, kita cukup menegur method Disconnect bersumber object WhatsApp Pukat Client

          
            private
            void
            btnStop_Click
            (
            object
            sender
            ,
            EventArgs
            e
            )
            {
            using
            (
            new
            StCursor
            (
            Cursors
            .
            WaitCursor
            ,
            new
            TimeSpan
            (
            0
            ,
            0
            ,
            0
            ,
            0
            )))
            {
            // unsubscribe event OnMessageRecieved
            
            _whatsAppApi
            .
            OnMessageRecieved
            -=
            OnMessageRecievedEventHandler
            ;
            _whatsAppApi
            .
            MessageUnSubscribe
            ();
            // tutup chrome web browser
            _whatsAppApi
            .
            Disconnect
            ();
            btnStart
            .
            Enabled
            =
            true
            ;
            btnStop
            .
            Enabled
            =
            false
            ;
            }
            }
          
        

Screenshot

Ini adalah tampilkan aplikasi utama WhatsApp Bot.

Dan di radiks ini adalah screenshot ketika Anda berinteraksi dengan WhatsApp Bot via WhatsApp mobile.

1. Menampilkan perintah nan tersaji

Kerjakan menampilkan perintah yang tersedia, cukup dengan membawa wanti-wanti:
/sambung tangan

2. Memulai sesi tes online

Bikin memulai sesi pemeriksaan ulang online, kirimkan pesan:
/berangkat

3. Menyampaikan cak bertanya tes

Untuk mengutarakan soal testimoni online, kirimkan pesan:
/soal
dan bagi menjawabnya kirim pesan:
/jawab jawaban

4. Selesai

Terakhir kerjakan mengakhiri sesi pengecekan online, kirimkan pesan:
/selesai

Selamat Mencoba
:blush:

Referensi:

  • WhatsApp Client Library for .Net Developer
  • Full Emoji List – kode unicode untuk mencadangkan emoji

Source: http://coding4ever.net/blog/2020/11/22/whatsapp-bot/