Pilih Laman

Sumber : https://www.petanikode.com/bot-telegram-simsimi/

Cara Kerja Bot dengan Hook.io dan Simsimi

Sebelumnya, perlu diketahui cara komunikasi bot dengan Hook.io dan API Simsimi.

Cara komunikasi Bot Telegram dengan Hook.io dan API Simsimi

Bot mengirim teks (pesan) ke Hook.io, kemudian Hook.io meneruskan request tersebut ke Simsimi.

Simsimi memberikan balasan, kode yang di Hook.io memprosesnya dan mengirim balasannya ke Bot.

Gampang kan?


Baca Juga (tulisan sebelumnya):


Bahan-Bahan yang Dibutuhkan

  1. Token Bot Telegram (Cara mendapatkannya): fungsinya untuk mengakses Bot Telegram.
  2. Akun Hook.io (Daftar di sini): tempat menyimpan kode bot.
  3. Kunci API/Token Simsimi (Daftar di sini): fungsinya untuk mengakses kecerdasan Simsimi.

Pastikan sudah menyiapkan semua bahan tersebut.

Membuat Service di Hook.io

Buatlah sebuah service pada Hook.io (klik di sini).

Name diisi dengan nama yang diinginkan.

Sebagai contoh, saya membuat sebuah service bernama iyan-chan.

Membuat Service di Hook.io

Setelah selesai, kita akan memiliki server sendiri dengan alamat

https://hook.io/<username>/<nama service>/

Contoh punya saya:

https://hook.io/ardianta/iyan-chan/

Membuat Variabel Lingkungan

Setelah itu, silahkan buat variabel lingkungan di https://hook.io/env.

Variabel lingkungan berfungsi untuk menampung token dan API Key, agar kita tidak menulikan token dalam kode.

Karena token bersifat rahasia.

Ada dua variabel yang perlu dibuat:

  • variabel iyan_chan_bot untuk menyimpan token Bot Telegram
  • variabel simsimi_key untuk menyimpan token/API Key Simsimi

Membuat variabel lingkungan hook.io

* Abaikan vairabel token_petani_bot, itu variabel untuk tutorial sebelumnya.

Variabel bersifat case sensitive, huruf besar dan kecil dibedakan.

Variabel ini dapat kita akses pada kode dengan objek hook.env.

Lebih jelasnya, silahkan lihat di langkah berikutnya.

Membuat Kode Kendali Bot

Buka kembali service yang sudah dibuat.

Silahkan ganti kode (hook source) dengan kode berikut ini.

module['exports'] = function iyanChanBot(hook) {

    var request = require('request');    
    var botName = "iyan"; // nama bot, silahkan ganti sesukanya
    var simiUrl = 'http://sandbox.api.simsimi.com/request.p?key='+hook.env.simsimi_key+'&lc=id&ft=1.0&text='+hook.params.message.text;


    // tulis teks yang dikirim dari Telegram ke Logs
    console.log("Telegram: " + hook.params.message.text);

    // buat request ke API Simsimi
      request(simiUrl, function (error, response, body) {
      if (!error && response.statusCode == 200) {
         var data = JSON.parse(body);

         // tampilkan balasan dari Simsimi ke Logs
         console.log(data);

        var pesanBalasan = "";

        // kode error dari Simsimi
        // 400-Bad Request.
        // 401-Unauthorized.
        // 404-Not found.
        // 500-Server Error.
        // 509-melewati batas.

        if(data.result == 509 || data.result == 400 || data.result == 401 || data.result == 404 || data.result == 500 ){
            pesanBalasan = botName + " sedang tidur, silahkan hubungi kakak @ardiantapargo!";
        } else {
            pesanBalasan = data.response;

            // replace teks "simsimi" dengan nama bot
            pesanBalasan = data.response.replace(/simisimi/g, botName);
              pesanBalasan = data.response.replace(/simsimi/g, botName);
            pesanBalasan = data.response.replace(/Simsimi/g, botName);            
            pesanBalasan = data.response.replace(/cimicimi/g, botName);
            pesanBalasan = data.response.replace(/Simi/g, botName);
              pesanBalasan = data.response.replace(/simi/g, botName);
        }

        // kirim balasan dari simsimi ke Bot Telegram
         request
          .post('https://api.telegram.org/bot' + hook.env.iyan_chan_bot + '/sendMessage')
          .form({
                "chat_id": hook.params.message.chat.id,
                "text": pesanBalasan
        });

      }
    });

};

Fungsi utama dari kode di atas adalah menerima dan membuat request.

Pertama Servie Hook.io akan menerima request (chat) dari bot, kemudian request tersebut diteruskan ke API Simsimi.

Setelah mendapatkan balasan dari API simsimi, balasan tersebut kita kirim kembali ke bot.

Perhatikan:

hook.env.simsimi_key danhook.env.iyan_chan_bot pastikan sama dengan nama variabel lingkungan yang telah dibuat.

Setelah itu, simpan kodenya.

Kode Kendali Bot sudah siap

Jangan lupa juga untuk menjalankan service-nya:

Menjalankan Servie Hook.io

Kalau mendapatkan error seperti ini

Error saat menjalankan service

Abaikan saja.

Itu karena tidak ada parameter yang diberikan.

Nanti parameternya berasal dari Bot Telegram.

Menghubungkan Bot dengan Hook.io

Hubungan Bot dengan Hook.io

Langkah berikutnya menghubungkan Bot dengan Hook.io.

Kita bisa menggunakan URL berikut untuk melakukannya:

https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://hook.io/<hook-user>/<hook-name>

Silahkan diganti:

  • <TOKEN> dengan token bot anda
  • <hook-user> dengan username hook.io anda
  • <hook-name> dengan nama layanan/service hook yang anda buat

Contoh:

https://api.telegram.org/bot247322285:AADCfe2WSna7sclLalfBq5VCmn3yTzii_zQ/setWebhook?url=https://hook.io/ardianta/iyan-chan/

Kemudian, silahkan buka URL tersebut melalui browser.

Jika mendapatkan balasan seperti ini, maka bot berhasil terhubung dengan layanan hook.io.

Menghubungkan Bot dengan Hook.io