Stack yang di gunakan untuk membuat Bot telegram
Pada dasarnya membuat bot telegram dapat di lakukan dengan berbagai cara. Telegram sendiri menyediakan 2 metode untuk membuat bot telegram, metode ini adalah teknik bagaimana caranya kita dapat berkomunikasi dengan server telegram.
Salah satu metode yang paling populer adalah menggunakan long poling, dan terhubung secara langsung ke server telegram melalui koneksi tcp dibandingkan HTTP. Metode ini dapat di capai dengan menggunakan library telegram seperti telethon, pyrogram, atau library lain.
Cara kedua, adalah menggunakan telegram api official. Penggunaan telegram api mempunyai kemudahan dalam proses pembuatan, dan juga lebih stabil. Tapi mempunyai keterbatasan terhadap traffik lalu lintas yang dapat di kirimkan.
Contohnya, untuk koneksi via API kita hanya dapat menerima 100 pesan lewat Webhook secara bersamaan. Kita juga di batasi untuk mengunggah file ke server telegram batasnya adalah 2GB.
Batasan tersebut sebenarnya cukup tinggi untuk bot kelas rendah yang tidak mempunyai fitur yang eklusif dan tidak punya banyak pengguna. Sebagian besar bot terkadang menggunakan lebih banyak webhook yang di arahkan ke server yang sama untuk dapat meningkatkan kapasitas limit traffik.
Metode api juga bisa menggunakan long poling, dimana kita terus-terusan melakukan pemanggilan getUpdate untuk mendapatkan data dari telegram. Metode ini menurut saya cukup mahal, karena dalam keadaan diam bot kita akan terus-terusan mengunduh data dari telegram. Dan itu sangat tidak effisien bandwidth dan process, apalagi jika bot yang mau di buat akan bekerja dengan ribuan pengguna.
Untuk bot yang ringan dan tidak membutuhkan fitur eklusif saya lebih suka menggunakan telegram API dan Webhoook. Metode ini sangat effisien, dan lebih stabil dibandingkan menggunakan long poling, maupun library enkripsi resmi telegram.
Penggunaan webhook memang sedikit menghasilkan delay terhadap respon bot, delay terjadi sekitar 50-100ms. Hal ini di sebabkan karena telegram menggunakan NODE titik server di Amsterdam terhadap server host mereka untuk semua koneksi melalui api.telegram.org. Jika kita menggunakan server datacenter di indonesia makan response time akan jauh lebih lemot, bahkan bisa mencapai 200ms.
Terakhir nih, untuk bot yang butuh fitur eklusif baru deh kita membutuhkan library yang lebih lengkap. Library ini mempunyai banyak sekali modul yang dapat di gunakan untuk ber-interaksi dengan server telegram. Kebutuhan lingkup virtual environment nya juga sangat berbeda.
Penggunaan bahasa Python lebih umum digunakan, sedangkan kalau pakai api kita bisa menggunakan Golang, JavaScript, PHP, Shell, dan banyak bahasa pemrograman lainya.
Penggunaan library resmi dengan protokol MTProto mereka mempunyai kelemahan dari segi penggunaan. Kelemahanya akun gampang di banned apabila melakukan pelanggaran, membutuhkan ruang lingkup sendiri untuk server, kebutuhan akan sumber daya yang besar, dan akan menjadi rumit untuk menangani ratusan ribu member bot.
Bot Api Official lebih murah, sedangan bot python lebih mahal. Kalau kamu menemukan jasa pembuatan bot telegram dengan harga murah, mungkin mereka menggunakan server oplosan. Yaitu server yang di beli untuk penggunaan tertentu, dan di oplos dengan teknik lain untuk dapat di gunakan menghosting Bot.
Bot telegram yang butuh kemampuan lebih tinggi seperti mengunggah file/transfer data dengan ukuran besar, edit video seperti menambahkan wattemark ke dalam file video, melakukan streaming, mengambil list daftar anggota grup/channel tertentu, mengendalikan akun pribadi sebagai bot, memproses data berat seperti analisis data, membutuhkan banyak dukungan modul pihak ketiga.
Kalau bot dengan kebutuhan CRUD saja, bisa manfaatkan API Official standar dan memanfaatkan Webhook sebagai teknik pertukaran data antara telegram dan server bot kita.