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.

  1. Tambahkan ChatBot Builder melalui halaman Jelajah
  2. Ketik perintah /createbot
  3. ChatBot Builder akan meminta anda untuk memasukkan informasi terkait bot yang anda buat, seperti username, full name, password, deskripsi, dan profile picture.
  4. 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.
  5. 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.
  6. 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 NodeJs

Kode 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:


  1. 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

  2. Buka file Gemfile, tambahkan depedensi unirest seperti di bawah ini:
    gem 'unirest'

    library HTTP → http://unirest.io/ruby.html

  3. Setelah itu kembali ke cmd/terminal jalankan command $ bundle install dan Depedensi akan terinstall

    Sebelum 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 user
    • message → text untuk mengetahui konten pesan yang dikirim ke bot
    • message → type untuk mengetahui jenis pesan yang dikirim ke bot
    • from → fullname untuk mengetahui siapa nama pengirim pesan tersebut
  4. Kemudian kembali ke cmd/terminal, buat model baru pada project dengan nama Chat seperti command berikut $ rails generate model Chat
  5. Lalu buka file \app\models\chat.rb , tambahkan atribut-atribut yang dibutuhkan seperti di bawah ini

    Setelah itu tambahkan constructor untuk inisiasi data di dalam class Model

  6. 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 Controller

    Setelah itu tambahkan constructor untuk inisiasi data atribut di dalam class Controller

  7. 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

  8. Lalu tambahkan method yang berfungsi untuk melaksanakan command bot di dalam Controller dengan memanfaatkan API post-comment ChatAja

  9. 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
  10. Buka file config\routes.rb, tambahkan code untuk memanggil Controller dan method run yang menjalankan program di url root ('/') localhost:3000
  11. Lalu kembali ke cmd/terminal jalankan program yang telah dibuat dengan perintah berikut
    $ rake db:create db:migrate
    $ rails server
  12. 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
  13. Edit webhook melalui ChatBot Builder dan copy-paste link pada langkah sebelumnya.