Buat Telegram Bot pertamamu menggunakan Python
Memulai
Ketika kamu bergabung ke sebuah grup telegram, dalam beberapa kasus kamu akan menemukan seorang member grup yang langsung menyambutmu. Member tersebut biasanya adalah admin yang akan memantau percakapan grup, menyaring spam sampai mengeluarkan anggota grup yang melanggar aturan. Pekerjaan tersebut biasanya akan diautomasi dengan menggunakan bot yang berjalan sesuai dengan aturan yang sudah ditentukan. Bot juga biasa digunakan sebagai pemantau dan pengurus sebuah channel. Jika pemilik channel atau grup mempunyai update baru, maka bot akan secara otomatis mengabari subscriber channel tersebut.
Sesuai dengan judul, saya akan berbagi pengalaman saya tentang bagaimana cara membuat Bot Telegram menggunakan Python dan sebuah library.
Buat Bot Service melalui Bot Father
Sebelum kita bisa melakukan automasi terhadap bot, kita membutuhkan sebuah Bot Service yang akan menghubungkan program kita dengan telegram, yang dapat diakses melalui bot API yang disediakan oleh telegram. Proses ini merupakan proses paling pertama, karena telegram mengharuskan untuk membuat bot, harus melalui Bot Father.
Kunjungilah Bot Father untuk memulai proses pembuatan Bot.
Ketikkan /start untuk melihat daftar layanan. Bot akan mengirimkan sejumlah perintah yang didukung untuk mengelola bot kamu atau hal lainnya.
Ketikkan /newbot untuk membuat Bot Baru.
Sekarang kamu akan diminta memasukkan nama bot yang kamu mau. Masukkan nama yang menarik.
Masukkan username untuk bot kamu, username yang valid harus diakhiri dengan ‘bot’ contoh: botpertamasaya_bot, coba masukkan username yang unik yang belum pernah digunakan pada bot lain.
Selesai, bot sudah selesai dibuat! Simpan Token yang diberikan baik-baik, token tersebut digunakan untuk mengakses API bot yang bersangkutan.
Jangan expose token tersebut ke orang lain, jika kalian tidak ingin orang lain mengotak atik bot kalian!
Sekarang apa lagi?
Masih banyak! Ini adalah langkah awal untuk memulai projek telegram bot kamu. Untuk saat ini, bot belum bisa melakukan apapun.
Kita harus menjalankan program pada server atau komputer pribadi yang akan mengahandle setiap pesan yang masuk untuk kemudian diproses. Sekarang kita akan mencoba secara manual menjalankan bot dengan mencari chat id lalu mengirimkan pesan kepada pengguna dengan chat id tersebut.
Testing
Untuk mengirim sebuah pesan kepada seorang user telegram, kita harus tahu dulu chat id-nya! Saya menemukan sebuah diskusi yang menarik di Stack Overflow.
Untuk mendapatkan chat id dari sebuah percakapan, salah satu cara yang dapat dilakukan adalah seperti ini:
- Kunjungi bot yang sudah dibuat dengan mengunjungi url t.me/ username_bot lalu kirim sebuah pesan, apapun itu.
2. Kunjungi URL berikut:
Ganti XXX:YYY dengan token bot kamu, lalu kunjungi, maka server akan memberikan sebuah json yang berisi informasi seperti pesan dan chat id. Jika kamu melewatkan langkah pertama, maka tidak akan ada update untuk user yang bersangkutan.
Agar mudah menemukan chat id dari sebuah percakapan, saran saya gunakan json beautifier.
Cari ‘“chat”:{“id”:xxxxxxx,…’ yang berasal dari user yang bersangkutan
Oke, sekarang kamu sudah mendapatkan id chat user.
Untuk melakukan testing, kamu bisa melakukan method post dengan parameter chat_id dan text:
Ganti XXX:YYY dengan token bot, zzzzzzzzzz dengan chat id.
Untuk bersenang-senang, saya membuat sebuah program kecil untuk mengirim dari bot ke spesifik user: POST Request
Bot ini bisa dipakai dalam banyak hal! Saya paling suka menggunakan bot telegram ini sebagai UI dari aplikasi, misalnya sebuah perangkat IoT.
Menggunakan Library Python
Bot yang sudah kita buat sebenarnya belum bisa dikatakan bot. Tahap yang sudah kita lakukan tadi merupakan tahap pengintegrasiannya. Kali ini kita akan mencoba membuat bot tersebut benar-benar menjadi bot yang interaktif, programmable, mudah (tidak perlu mencari chat id secara manual) digunakan sehingga bisa merespon secara otomatis sesuai dengan aturan yang telah kita tetapkan.
Pengembangan pada libary ini lumayan aktif dan telah digunakan lebih dari 28 Ribu pengguna (2021). Wikinya juga sangat membantu dan sangat mudah diikuti bahkan bagi pemula.
Langkah pertama, install library python berikut menggunakan PIP dalam terminal di mac atau cmd di windows. Perintah penginstalan
Jika sudah selesai, kira-kira outputnya akan seperti dibawah Output Terminal
Setelah library telah terinstal, ujilah apakah sudah benar-benar terinstal, dengan cara jalankan perintah dibawah di dalam shellnya python Uji Library
Jika baris kode berjalan dengan aman tanpa memunculkan pesan apapun, bisa dikatakan library berhasil terinstall.
Selanjutnya kita akan mencoba membuat interaksi dasar bot ini bekerja atau ‘Hello World’ nya sendiri jika kalian menyebutnya.
Tulislah potongan kode dibawah lalu tukarlah ‘TOKEN’ dengan token bot kalian yang sudah kita lakukan di awal.
Potongan kode dibawah pada dasarnya adalah mengimport library, lalu membuat objek Updater. Kalian bisa mempelajari lebih jauh mengenai class Updater.Updater
Selanjutnya kita akan akan menambahkan fitur logging yang akan berguna untuk melakukan debug nantinya jika bot tidak berjalan sesuai harapan. Jika terjadi error pada saat memproses pesan yang masuk, pesan error akan ditampilkan pada terminal atau CMD:Exception Handling
Sekarang kita masuk ke method intinya (function dan method sama saja). Method ini akan kita sambungkan dengan perintah /start pada bot.
Jika user mengirimkan perintah tersebut, atau mengklik tombol start pada bot, maka dia akan membalas dengan pesan “I’m a bot, please talk to me!”. Start Handler
Lalu kita akan menyambungkan method diatas dengan perintah /start, sehingga setiap kali user mengirimkan itu, program akan memanggil method start()
. Kamu bisa mengubah kata perintahnya sesuka hati.
Untuk menjalankan bot, tambahkanlah kode dibawah ini: Start the Bot
Bot akan berjalan terus menerus, mendengarkan pesan yang masuk dari pengguna telegram yang membuka percakapan dengannya.
Berikut keseluruhan kodingan: Seluruh Kode
Tambahkan fungsi dibawah, maka bot akan mengulang setiap percakapan dan meneriaki kamu:) Echo Handler
Buat bot pura-pura mengetik sehingga terlihat lebih organik dengan manambahkan kodingan berikut sebelum bot mengirimkan balasan (jangan lupa mengimport package telegram dulu sebelum menambahkan fitur ini): Chat Action: Typing
Jika bot menerima pesan yang tidak dikenalinya (A.K.A tidak kamu programkan untuk itu), maka method berikut berguna untuk menanganinya dengan mengirimkan pesan balik ke pengguna, sehingga pengguna mengetahui bahwa perintah yang dimasukkannya tidak didukung:
Sekali lagi, untuk keseluruhan kodingannya adalah: Seluruh Kode
Perlu diingat, baris dibawah harus berada pada baris paling terakhir Start the Bot
Untuk menjalankan program ini, cukup ketikkan perintah python namafile.py
jika kalian menggunakan python shell. Bot akan berjalan dan jika ada sesuatu yang penting (seperti error) maka outputnya akan ditampilan pada layar terminal.
Agar bot bekerja secara berkelanjutan, kamu harus menjalankan bot secara terus menerus di komputer kamu. Artinya kamu harus menghidupkan komputer kamu selama 24 jam tiap hari dalam seminggu agar bot tetap bisa mendengar pesan yang masuk lalu memprosesnya. Tetapi cara ini tidak disarankan 🙂 alangkah baiknya sediakan satu server untuk menjalankan bot ini didalamnya, sehingga kamu tidak repot-repot harus menghidupkan komputer 24 jam terus-menerus mengabiskan banyak listrik.
Jika kamu sudah selesai bermain-main, hentikan bot dengan menambahkan kode ini: Stop the Bot
Masih banyak fitur-fitur penting dan menarik lainnya dapat kamu cobakan dan kamu tambahkan ke dalam bot, seperti mengaktifkan inline mode untuk menampilkan perintah apa saja yang didukung bot, membuat poll, membuat menu interaktif, menangani pembayaran dll.
Bacalah lebih lanjut github wiki dari github resminya untuk mempelajari mengenai fitur-fitur lainnya.
python-telegram-bot/python-telegram-bot
The telegram.ext submodule is built on top of the pure API implementation. It provides an easy-to-use interface and…
github.com
Demikianlah postingan saya, silahkan bereksperimen dengan bot sekreatif dan inovatif mungkin!
Sekian dan Terima Kasih!
10118277 — Mirza My Humayung
Program Studi Teknik Informatika
Fakultas Teknik dan Ilmu Komputer
Universitas Komputer Indonesia
Ten articles before and after
21+ Best Telegram Channels For Audio Books [New and Updated] – Telegram Guide
How to Get Pinned Message Back on Telegram – Telegram
Why can’t Telegram play videos? Do this – Telegram Tips
How to anonymously follow Instagram posts, stories and highlights via Telegram – Telegram Group
How to anonymously follow Instagram posts, stories and highlights via Telegram – Telegram Group
React Native Chat 2022. Reply on Swipe like in Telegram. Part 1 – Telegram Group
Top Telegram Anime Channels Links – Telegram
34000 Seconds to Hours | Telegram