Tuesday, August 23, 2016

Bermain dengan Telegram Bot

Selepas habis demam Pokemon Bot, berminat pula bermain dengan bot lain, Telegram Bot. Permulaan berjinak-jinak dengan Telegram Bot yang paling sukar bagi saya adalah pemahaman terminologi yang digunakan oleh Telegram Bot. Ini adalah kali pertama saya gunakan bot dalam perisian chat dan pemahaman adalah satu penyiksaan bagi seorang pengaturcara yang ingin terus terjun ke dalam penciptaan bot. Bagi yang pertama kali mendengar tentang Telegram, ia adalah lebih kurang perisian Whatsapp.

Yang paling mudah adalah mencari class yang sudah wujud dari pengaturcara lain untuk memudahkan penggunaan bot Telegram. Saya dalam kes ini menggunakan PHP Telegram Bot dengan manual yang agak ringkas proses pertama adalah create bot menggunakan @BotFather


Untuk bagaimana create bot, boleh terus ke page Telegram Bot dan mulakan langkah pertama untuk mendapatkan API key untuk berkomunikasi dengan bot tersebut.

Langkah kedua adalah memahami bagaimana bot berfungsi dan berkomunikasi dengan bot tersebut. Kebiasaanya bot digunakan untuk maklumat seperti berita, e.g blog post dan notifikasi di Telegram tentang berita terbaharu. Dalam kes saya, saya ingin notifikasi ke group Telegram tentang keluar masuk kereta harian setiap pagi (6 pagi) dan saya boleh request Bot tentang keluar masuk harian dengan bertanyakan query 

  • /checkin - senarai kereta pulang hari ini
  • /checkout - senarai kereta keluar hari ini
  • /checkin tomorrow - senarai kereta pulang esok
  • /checkout tomorrow - senarai kereta keluar esok
Menggunakan class PHP Telegram Bot ada 2 cara

  1. Run script secara manual/crontab untuk mengarahkan bot
  2. Run bot secara on demand ketika pertanyaan menggunakan Webhook.


Untuk notifikasi setiap pagi saya menggunakan cara pertama, dan untuk pertanyaan on demand saya menggunakan webhook. Webhook dalam konsep ini, apabila ada pertanyaan diajukan kepada bot, satu notifikasi berkenaan mesej tersebut ke satu URL yang dikhaskan. Webhook memerlukan satu web server live untuk dihantar (localhost memerlukan teknik khas) dan SSL (boleh SSL generate sendiri).

Setelah faham konsep dan persediaan ini, anda boleh mulakan pengaturcaraan bot Telegram ini.

Konsep pertama memerlukan hubungan ke pengkalan data MySQL dan konsep kedua tidak perlu. Pilih racun anda dan mulakan pengaturcaraan :D.

Ada contoh kod untuk run secara manual . Untuk webhook anda perlu set URL untuk menggunakan pengaturcaaan (sampel) dan boleh di unset (sampel) dan hanya letakkan di web server anda kod ini untuk Telegram hantar segala update. Arahan yang dihantar e.g /checkin /checkout boleh diprogramkan di dalam folder Commands . Ada beberapa sampel arahan yang sudah diberi seperti /slap /date dan /weather . 

Sudah faham ? Kalau sudah, terus gunakan Composer dan update ke folder www anda dan mulakan pengaturcaraan !

Di bawah adalah beberapa contoh bot yang menjawab kepada pertanyaan menggunakan webhook.  






No comments: