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.
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
- Token Bot Telegram (Cara mendapatkannya): fungsinya untuk mengakses Bot Telegram.
- Akun Hook.io (Daftar di sini): tempat menyimpan kode bot.
- 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
.
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
* 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.
Jangan lupa juga untuk menjalankan service-nya:
Kalau mendapatkan error seperti ini
Abaikan saja.
Itu karena tidak ada parameter yang diberikan.
Nanti parameternya berasal dari Bot Telegram.
Menghubungkan 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.
Komentar Terbaru