Tutorial Lengkap Membuat Bot Telegram Dengan Flask Python

Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python


Bot Itu Apa, Sih ? Dan Apa Fungsinya ?

Bot adalah aplikasi perangkat lunak yang menjalankan tugas otomatis melalui Internet. Biasanya, bot melakukan tugas-tugas yang sederhana dan berulang secara struktural, pada tingkat yang jauh lebih tinggi daripada yang mungkin untuk manusia saja. Sumber: Wikipedia
Yak, sesuai keterangan di atas, bot di sini berfungsi sebagai otomatisasi suatu pekerjaan manusia yang mana pekerjaan tersebut dilakukan secara berulang-ulang.

Di artikel pertama ini, kita akan Membuat Bot Telegram menggunakan bahasa pemrograman Python, tepatnya menggunakan librari Flask.
Bot Telegram yang akan kita buat di sini berfungsi sebagai penyambut bagi member yang baru bergabung dengan  grup Telegram kita.
Jadi saat ada member baru, bot akan otomatis menyambutnya sehingga member baru tersebut merasa 'dihargai' saat bergabung dengan grup kita, karena baru masuk saja sudah disambut dengan penuh kehangatan, hehe.

Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python
Gambar: Cahyaningbot
Kenapa Harus Python ?

Alasan paling mendasar adalah, karena saya sendiri baru bisa menggunakan bahasa pemrograman Python. Nggak lucu kalau bikin tutorial Membuat Bot Telegram dengan bahasa pemrograman lain tapi belum bisa dengan bahasa pemrograman tersebut.
Apa cuma bahasa Python saja ?
Tentu tidak. Kalian bebas menggunakan bahasa program lainnya seperti PHP, NodeJs dan lain sebagainya asalkan paham dengan logika bagaimana sebuah bot bekerja. 

Lalu, Gimana Cara Membuatnya ?

Bot yang akan kita buat nantinya merupakan sebuah skrip kode yang kita tulis menggunakan bahasa Python. Jadi mau tidak mau kita harus menguasai minimal satu bahasa pemrograman untuk Membuat Bot Telegram. Saya yakin pengunjung blog ini pasti sudah bisa atau bahkan pandai dengan bahasa program :)
Sebenarnya, kita juga bisa menggunakan Bot @Manybot untuk membuat sebuah Bot Telegram.
Tetapi, kita tidak bisa leluasa mengotak-atik bot sesuka hati kita.
Beda halnya dengan bot buatan kita sendiri, bisa kita otak-atik sesuka hati sesuai keinginan kita.

Baca juga: Cara Membuat Script Facebook & Instagram Video Downloader Sendiri Dengan Python

Siapkan Bahan-bahannya
Tidak seperti manusia yang dilahirkan oleh seorang ibu, Bot Telegram justru dilahirkan oleh Bapak Bot yang bernama BotFather.
Bapak Bot ini kan menghasilkan Token Akses Unik yang merupakan kunci unik untuk Bot kita nantinya.

Oke, mari kita minta terlebih dahulu kuncinya ke pak BotFather,
  • Pertama,  silahkan buka Telegram, baik Telegram Web ataupun Telegram App yang ada di Smartphone atau komputer kita.
  • Tulis username @BotFather pada Search Bar dan pilih BotFather untuk mulai ngobrol dengan pak BotFather.
  •  Setelah itu, kita bisa mengetikkan /newbot melalui kolom pesan, atau bisa langsung memilih melalui  tombol Bot Command.
  • Jika pak Bot sudah membalas, masukkan nama bot yang akan kita buat. nama ini bisa bebas kita ganti nantinya. Sebagai contoh, kita masukkan nama 'Bot Welcome Pertama' dan kirim.
  • Masukkan lagi ke kolom pesan username untuk bot kita. Username ini harus di akhiri dengan bot, Bot atau _bot dan tidak bisa kita ganti lagi. Disini kita menggunakan username pertama_sekalibot.
  • Dan terakhir, kita akan di beri kunci token oleh pak Bot. Copy tokennya dan simpan di tempat yang aman. Perlu diingat, simpan baik-baik token ini. Jangan sampai orang lain mengetahuinya.

Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python
Gambar: Meminta token bot ke BotFather
Bot kita sudah jadi. Tapi dia belum memiliki 'Otak' untuk untuk memproses data yang kita berikan nanti. Mari kita masuk ke hal terserunya, Ngoding !

Sebelum kita ngoding, mari kita berangan-angan sebentar menyusun kerangka bot kita. biar tidak bingung saat ngoding nantinya.
  • Pertama, bot akan meminta Update kepada Telegram.
  • Selanjutnya bot akan memproses data yang didapatkannya dan menentukan proses apa yang selanjutnya akan di proses. Jika bot menerima 'Member Baru', data akan diproses dan bot akan mengirim sambutan kepada member baru tersebut. Selain data tersebut, maka bot nggak akan memprosesnya dan menunggu hingga ada data member baru lagi.
Yap, setelah kerangka bot kita sudah jadi. Usahakan untuk dibaca kembali jika belum paham. Jangan di biasakan copy paste karena itu tidak akan membuat kita paham :)

Oke lanjut.. Poin pertama pada kerangka kita adalah meminta update dari Telegram. 
Ada dua metode dalam meminta update ke Telegram, yaitu metode Longpolling dan metode Webhook. Apa bedanya ? mari kita bahas.

Long polling
Bot harus melakukan atau meminta update secara terus menerus ke Telegram Bot API. Metode ini cocok bagi kita yag baru belajar bot atau sekedar iseng ingin membuat bot, karena cukup menggunakan pengulanagnan atau looping untuk memeriksa apakah bot kita berjalan atau tidak.

Tetapi, sangat tidak cocok jika kita ingin menggunakan bot untuk jangka lama. sebagai bot selamat datang misalnya.


Webhook
Metode ini sangat cocok kalau kita ingin menggunakan bot untuk jangka lama, karena bot tidak perlu meminta update terus menerus, karena bot akan otomatis mendapat update jika bot mendapat data baru saja. sangat efisien  sekali. hehe
Tetapi, untuk mode ini kita di wajibkan memiliki hosting sebagai URL webhook nya yang akan meneruskan data update dari server telegram ke bot kita. Di artikel ini kita akan menggunakan metode ini. Tenang, nanti akan kita bahas dan tentunya gratis. hehe


Mari kita ngoding !

Perlu untuk di ketahui, baris-baris perintah yang kita dunakan pada artikel Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python kita kali ini menggunakan terminal linux yang akan sedikit berbeda jika teman-teman menggunakan Windows. Jangan khawatir, hanya di bagian "echo" dan "mkdir" saja yang akan berbeda, silahkan gunakan teks editor sebagai pengganti echo untuk menulis teks kedalam file dan "new folder" pafa windows untuk pengganti "mkdir".

Sebelumnya, kita siapkan terlebih dahulu lingkunga kerja kita. 
Silahkan buka terminal dan ketikkan beberapa baris perintah berikut ini.
home$ pip install virtualenv
home$ vitualenv proyek1

Dari perintah di atas, akan ada folder baru bernama 'proyek1'. jangan khawatir. folder tersebut adalah folder tempat kita membangun bot kita.Silahkan masuk ke folder tersebut.
home$ cd proyek1

Di dalam folder proyek1, kita aktifkan lingkungan kerja kita.
home/proyek1$ source bin/activate

Akan ada (proyek1) di awalan console kita. itu tandanya lingkungan kerja kita telah katif. Selanjutnya, silahkan buat folder dengan nama botpertama. lalu masuk ke dalam folder yang sudah kita buat tadi.
(proyek1)home/proyek1$ mkdir botpertama
(proyek1)home/proyek1$ cd botpertama 
Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python
Gambar: Menyiapkan lingkungan kerja

Di dalam folder inilah semua file bot kita letakkan. Disini, sekali lagi saya tekankan untuk menulisnya, bukan copy paste.

Baiklah, mari siapkan Teks Editor kesukaan kita, kalian bisa menggunakan Android atau Komputer, bebas !
Jika sudah, mari kita menulis otak dari bot kita :)
from flask import Flask
from flask import request
from requests import get
import os


token = os.environ['TOKEN']
url = f'https://api.telegram.org/bot{token}/'


otakBot = Flask(__name__)

def update(update):
  if 'new_chat_member' in str(update):
     nama_grup = update['message']['chat']['title']
     grup_id   = update['message']['chat']['id']
     mem_baru  = update['message']['new_chat_member']['first_name']
     teks      = f'Hai {mem_baru} !\nSelamat datang di Grup {nama_grup}'
     kirim_pesan(grup_id,teks)
  else:
     # disini bisa kita tambahin kode lainnya
     # misalnya membalas kalau ada oran yang ngechat ke bot kita 
     # dan kreasikan sesuai imajinasi kalian :)
     id = update['message']['chat']['id']
     kirim_pesan(id,'halo, saya bot pertama')
  
def kirim_pesan(id,teks):
  data = {
  'chat_id':id,
  'text':teks
  }
  get(url+'sendMessage',params=data)


@otakBot.route('/',methods=['POST','GET'])
def index():
  if request.method == 'POST':
     data_update = request.get_json()
     update(data_update)
     return "oke"
  else:
     return 'HALAMAN BOT PERTAMA SAYAHALAMAN INI BISA DI GANTI DENGAN KODE HTML'

if __name__ == '__main__':
  otakBot.run(host='0.0.0.0',port=int(os.environ.get('PORT','5000')),debug=True)


Jika sudah, silahkan simpan di dalam folder buatan kita tadi dengan nama bot_pertama.py

Karena kita akan menggunakan heroku, kita siapkan file-file konfigurasi agar Heroku tau apa yang harus ia kerjakan kepada file bot kita. file-file konfigurasi yang di butuhkan adalah Procfile dan requirements.txt

Namun sebelumnya, kita install dulu modul-modul yang di perlukan untuk menjlaankan bot kita yang ada di dalam file bot_pertama.py
pada tutorial kali ini, hanya modul flask dan requests yang kita perlukan.
(proyek1)home/proyek1/botpertama$ pip install flask requests

Lalu, kita freeze modul yang sudah terinstall ke file requirements.txt agar heroku tau modul apa saja yang di perlukan untuk menjalakan file bot kita.
(proyek1)home/proyek1/botpertama$ pip freeze > requirements.txt

Setelah itu, kita buat file Procfile. file Procfile ini berisi perintah kepada heroku untuk menjalankan otak bot kita.
(proyek1)home/proyek1/botpertama$ echo "web: python bot_pertama.py" > Procfile

Perlu di ingat, teks "bot_pertama.py" bisa saja berbeda, tergantung dengan nama apa kita menyimpan file bot kita. kita sesuaikan saja.
Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python
Gambar: Persiapan sebelum deploy ke Heroku

Sampai di sini, kita sudah berhasil membuat otak dari bot sederhana kita,
Proses selanjutnya adalah Membuat Bot Telegram Python kita online dengan cara mendeploynya ke web hosting.

Di tahap ini, kita akan memanfaatkan layanan gratis dari web Heroku.
Untuk memudahkan proses deploy proyek kita nantinya, kita bisa  menggunakan Heroku CLI yang sudah terpasang di perangkat kita. Jika belum, silahkan baca dokumentasi cara menginstallnya pada web resminya.

Kalau sudah terpasang, mari kita mulai mendeploy bot kita ke heroku..
sebelumnya, silahkan buat aplikasi baru di Heroku.
  • Buka https://www.heroku.com/ lalu masuk menggunakan akun heroku. Jika belum punya akun, silahkan buat akun terlebih dahulu dengan cara tekan tombol Sign Up
  • Setelah masuk ke akun heroku, buat aplikasi baru dengan menekan tombol New pada pojok kanan atas dan pilih Create new app.
  • Masukan nama aplikasi kita misalnya bot-pertamasekali lalu tekan create app
  • kita akan di bawa ke dasbor aplikasi kita. hal selanjutnya yang perlu kita lakukan adalah menyeting Config Variable untuk bot kita. Config variable ini akan menyimpan token bot kita agar aman. 
  • Pilih tab settings lalu tekan Reveal Config Vars.
  • Akan muncul dua kolom isian yaitu kolom KEY dan kolom VALUE.
  • Pada kolom KEY masukkan nama variabel kita. disini harus disesuaikan dengan kodingan pada otak bot kita yaitu pada os.environ['TOKEN']. jadi jika di kodingan kita set dengan nama misalnya os.environ['TOKENBOT'], maka pada kolom key kita masukkan nama TOKENBOT juga.
  • Pada kolom VALUE, masukkan token bot kita dengan cara copy lalu paste.
  • Jika sudah, kita tekan tombol ADD dan selesai.

Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python
Gambar: Membuat aplikasi baru di Heroku


Settingan aplikasi heroku untuk bot kita sudah selesai, sekarang saatnya kita deploy aplikasi kita ke heroku.

Silahkan ikuti baris perintah berikut.
(proyek1)home/proyek1/botpertama$ git init .
(proyek1)home/proyek1/botpertama$ git add *
(proyek1)home/proyek1/botpertama$ git commit -m "commit pertama"
(proyek1)home/proyek1/botpertama$ git push -u https://git.heroku.com/namaapp.git
(proyek1)home/proyek1/botpertama$ heroku ps:scale web=1 -a bot-pertamasekali

namaapp.git silahkan sesuaikan dengan nama aplikasi yang telah kita buat pada web heroku, sehingga url git repositorinya menjadi https://git.heroku.com/bot-pertamasekali.git

Sedangkan baris perintah heroku ps:scale web=1 -a bot-pertamasekali adalah perintah heroku-cli untuk menjalankan perintah yang ada di dalam file Procfile, yaitu menjalankan tugas web aplikasi kita, bot-pertamasekali.

Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python
Gambar: Proses deploy aplikasi ke heroku

kita sudah berhasil mendeploy bot kita ke heroku. untuk melihat apakah web sudsh bekerja atau belum, kita bisa mengeceknya ke url web aplikasi kita, yaitu https://bot-pertamasekali.herokuapp.com.

Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python
Gambar: Web sukses berjalan
Mantap. Web untuk bot kita sudah berjalan dengan lancar. Namun, jika teman-teman yang mengikuti tutorial ini mengalami error pada web nya, bisa dilihat dengan melihat logs dari errornya dengan perintah
$ heroku logs --tail -a nama_aplikasi

nama_aplikasi bisa teman-teman sesuaikan dengan nama aplikasi yang ingin di debug. untuk referensi tambahan, mungkin video cara deploy aplikasi flask python ke heroku berikut ini bisa membantu teman-teman yang kurang paham dengan penjelasan di atas.



Hal terakhir yang akan kita lakukan adalah mengatur web kita sebagai webhook untuk bot kita. Caranya adalah dengan mengakses API dari Telegram.

https://api.telegram.org/bot{token_bot}/setWebhook?url=url_web_kita
Ganti {token_bot} dengan token bot kita. Lalu kita paste ke browser.

Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python
Gambar: Sukses mengatur webhook


Jika sukses, hasilnya terlihat seperti gambar diatas, yaitu nilai dari "ok" adalah "true".
Saatnya kita coba untuk mengirim pesan kepada bot kita.

Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python
Gambar: Tes bot

Mantap sekali. bot kita merespon sesuai dengan yang kita atur pada file bot_pertama.py
sekarang, coba kita tambahkan ke grub, disini saya membuat sebuah grub baru dan menambahkan seseorang untuk melihat sambutannya.

Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python
Gambar: Bot sukses


Dan sempurna. Bot pertama kita berhasil menyambut member yang baru saya tambahkan.

Sampai disini, bot kita telah selesai dan berfungsi sebagai mana mestinya sesuai dengan yang telah kita atur pada kode di file bot_pertama.py. Teman-teman bisa merubahnya dan mengkreasikannya sesuka hati dan sesuai kebutuhan teman-teman.

Mungkin cukup sampai di sini artikel tentang Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python kita kali ini.
Sekali lagi, biasakan untuk tidak copy paste karena itu tidak akan membuat kita paham.

Saya menyadari tutorial yang kita bahas masih jauh dari kata sempurna. Untuk itu, saya sangat terbuka jika teman-teman ingin menanyakan hal yang kurang jelas perihal Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python yang kita bahas, atau sekedar memberi masukan yang bersifat membangun pada kolom komentar yang tersedia, atau bisa langsung menghubungi saya pada kontak yang tersedia di tab Find Me di atas.

Jangan ragu untuk membagikan ke orang-orang terdekat artikel  tentang Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python ini agar semakin banyak orang yang tau dengan Tutorial Lengkap Membuat Welcome Bot Telegram Dengan Flask Python.

Terimakasih :)


9 Komentar untuk "Tutorial Lengkap Membuat Bot Telegram Dengan Flask Python"

  1. Kalau pakai windows dengan menggunakan editor Notepad++ gimana caranya min.
    Terima kasih

    BalasHapus
    Balasan
    1. Terimakasih udah berkomentar, dan mohon maaf jika lama respon.

      Di windows, letak perbedaan hanya pada beberapa baris command/perintah.

      Seperti echo "web: python bot_pretamasekali.py" > Procfile. Perintah tersebut digunakan untuk menulis ke dalam file Procfile.

      Jadi tinggal membuka teks editor, membuat file baru dengan nama Procfile lalu menulis web: python bot_pertamasekali.py dan save.

      Selain itu, syaa rasa sama saja. Tinggal install aplikasi seperti git, heroku-cli (perlu install NodeJS dulu)


      Terimakasih

      Hapus
  2. min kalo gagal / tidak dapat akses gimana ya solusinya

    BalasHapus
    Balasan
    1. Web tidak dapat di akses, boasanya ada error di kode nya. Untuk melihat errornya, bisa lihat menggunakan logs di herokunya,

      heroku logs --tail -a nama-app-nya

      Atau bisa hubungi saya https://t.me/om_karjok untuk tanya" lebih lanjut

      Hapus
  3. Mas admin. ..
    Saya lg blajar menjalankan bot ig dari Ubuntu..
    Yg saya harapkan gini min.
    Bot ig ini.. Kerjanya cuman like.. Namun saya dan orang lain butuh report jumlah like..
    .. Klw repot ya dr tele via bot.. Bikin jalurnga gimana y... Min...
    .

    BalasHapus
Berkomentarlah dengan bijak. Dan selalu berusahalah memberikan kritik maupun komentar yang bersifat membangun

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan bawah