
ChatAja Bot
Bot merupakan aplikasi yang berjalan dalam ChatAja. Pengguna dapat berinteraksi dengan bot dengan cara mengirim suatu pesan atau perintah ke bot dan bot tersebut dapat menjalankan suatu aksi berdasarkan input. Bot juga dapat mengirimkan pesan secara otomatis ke pengguna. ChatBot Builder merupakan bot yang digunakan untuk mengelola bot-bot milik seorang pengguna.
- Tambahkan ChatBot Builder melalui halaman Jelajah
- Ketik perintah /createbot
- ChatBot Builder akan meminta anda untuk memasukkan informasi terkait bot yang anda buat, seperti username, full name, password, deskripsi, dan profile picture.
- Username dan password digunakan oleh pengguna untuk mencari dan add bot anda dari halaman jelajah. Sedangkan Full name, deskripsi, dan profile picture yang anda masukkan akan ditampilkan sebagai contact detail dari bot yang dibuat.
- Setelah ChatBot Builder menerima informasi yang diperlukan dari bot yang dibuat, ChatBot Builder akan membuat dan memberikan informasi access token baru dari bot yang dibuat.
- Access token tersebut digunakan untuk membangun API Bot agar bot dapat berkomunikasi dua arah (dapat menerima dan membalas pesan dari pengguna). Url API tersebut dapat dihubungkan ke webhook bot tersebut dengan memasukkan perintah /editbot.
- /createbot – Membuat akun Bot baru
- /editbot – Mengubah informasi dan atribut dari bot yang dipilih
- /listbot – Menampilkan daftar bot yang dibuat beserta informasi/atributnya
- /deletebot – Menghapus bot yang telah dibuat
- /bantuan – Menampilkan perintah-perintah yang dapat dijalankan ChatBot Builder
- /batal – Keluar dari menu perintah yang sedang dijalankan
Pembuatan API Bot ChatAja dapat mengikuti kode sampel yang sudah tersedia bahasa berikut.
Python PHP Ruby NodeJsKode yang dapat diubah terkait input dan output bot adalah kode chatcontroller. Bagian yang dapat diubah adalah metode run dan metode lainnya yang dipanggil dari metode run tersebut. Run menerima input dari user dan menentukan output bot.
Terdapat lima tipe output dari bot, yaitu Text, Button, Card, Location, dan Carousel. Sampel telah memberikan contoh metode-memberikan yang memberikan output dalam masing-masing tipe tersebut. Untuk mengubah isi output, nilai payload pada masing-masing metode dapat diubah.
Agar API dapat mengakses suatu data, dapat dihubungkan ke basis data atau dibuat tabel baru, dan dibuat sebuah model untuk mengakses basis data. Untuk menghubungkan API dengan bot, edit webhook bot dan isi dengan url API tersebut. URL API bisa didapatkan dengan menggunakan ngrok untuk API yang dijalankan di localhost, atau dengan me-deploy API tersebut.
Contoh Implementasi Bot ChatAja Menggunakan Ruby
Requirement:
- Ruby https://www.ruby-lang.org/en/ → bahasa program
- Ruby on Rails https://rubyonrails.org/ → framework ruby untuk web development
- Bundler https://bundler.io/bundle_install.html → Ruby depedensi manajemen
- Ngrok https://ngrok.com/ → http tunneling
-
Pertama buat project rails pada direktori yang diinginkan melalui cmd/terminal dengan nama sample-bot-chataja
$ cd <directory path>
$ rails new sample-bot-chataja --skip-turbolinks --skip-spring --skip-test --skip-bundle
$ cd sample-bot-chataja
-
Buka file
Gemfile
, tambahkan depedensi unirest seperti di bawah ini:gem 'unirest'
library HTTP → http://unirest.io/ruby.html
-
Setelah itu kembali ke cmd/terminal jalankan command
$ bundle install
dan Depedensi akan terinstallSebelum membuat class Model, kita perlu tahu response data dari callback url webhook agar dapat menentukan atribut dan parameter apa saja yang dibutuhkan. Di bawah ini merupakan contoh response yang dihasilkan dari webhook ChatAja engine:
Dari response di atas, kita membutuhkan parameter:
chat_room → id
untuk mengetahui dimana bot berinteraksi dengan usermessage → text
untuk mengetahui konten pesan yang dikirim ke botmessage → type
untuk mengetahui jenis pesan yang dikirim ke botfrom → fullname
untuk mengetahui siapa nama pengirim pesan tersebut
-
Kemudian kembali ke cmd/terminal, buat model baru pada project dengan nama Chat seperti command berikut
$ rails generate model Chat
-
Lalu buka file
\app\models\chat.rb
, tambahkan atribut-atribut yang dibutuhkan seperti di bawah iniSetelah itu tambahkan constructor untuk inisiasi data di dalam class Model
-
Kembali ke cmd/terminal, buat controller baru pada project dengan nama Chat seperti command berikut
$ rails generate controller Chat
Lalu buka file
\app\controllers\chat_controller.rb
kemudian buat atribut yang dibutuhkan untuk class ControllerSetelah itu tambahkan constructor untuk inisiasi data atribut di dalam class Controller
-
Copy access token yang didapat dari ChatBot Builder saat bot berhasil dibuat dan paste access token tersebut ke Controller
Setelah itu tambahkan method yang berfungsi untuk mengambil dan menampung response data dari webhook di dalam Controller
-
Lalu tambahkan method yang berfungsi untuk melaksanakan command bot di dalam Controller dengan memanfaatkan API post-comment ChatAja
- Tambahkan method run pada Controller yang berguna untuk menjalankan bot dan mengarahkan command message sesuai dengan fungsi-fungsi yang sudah dibuat sebelumnya (method-method reply command di atas). Ikuti code di bawah ini
-
Buka file config\routes.rb, tambahkan code untuk memanggil Controller dan method run yang menjalankan program di url root ('/') localhost:3000
-
Lalu kembali ke cmd/terminal jalankan program yang telah dibuat dengan perintah berikut
$ rake db:create db:migrate
$ rails server
-
Kemudian jalankan http tunneling dengan Ngrok untuk mendapatkan link https yang menjalankan http local pada port 3000. Link forward ini akan di daftarkan nanti melalui ChatBot Builder sebagai webhook callback url-nya
$ ngrok http 3000
- Edit webhook melalui ChatBot Builder dan copy-paste link pada langkah sebelumnya.