Tutorial Lengkap Membuat Bot Telegram Dengan Flask Python
Minggu, 26 Januari 2020
9 Komentar
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.
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.
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 :)
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
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.
Gambar: Meminta token bot ke BotFather |
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.
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
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.
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.
Di dalam folder proyek1, kita aktifkan lingkungan kerja kita.
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.
Di dalam folder inilah semua file bot kita letakkan. Disini, sekali lagi saya tekankan untuk menulisnya, bukan copy paste.
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
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.
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.
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.
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.
Gambar: Web sukses berjalan |
$ 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.
Gambar: Sukses mengatur webhook |
Saatnya kita coba untuk mengirim pesan kepada bot kita.
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.
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 :)
I think that i can consider this article as a reference for me because it contains many important information at once and shortcut too much time, instead of reading more articles.
BalasHapusChatbot Company in Dubai
Chatbot Companies in Dubai
Chatbot Company
Chatbot Companies
AI Chatbot Development
Chatbot Companies in UAE
Chatbot Company in Chennai
Chatbot Company in Mumbai
AI Chatbot Companies
Chatbot Development Companies
Thank You 😊
HapusKalau pakai windows dengan menggunakan editor Notepad++ gimana caranya min.
BalasHapusTerima kasih
Terimakasih udah berkomentar, dan mohon maaf jika lama respon.
HapusDi 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
thank you
BalasHapusYou're welcome!
Hapusmin kalo gagal / tidak dapat akses gimana ya solusinya
BalasHapusWeb tidak dapat di akses, boasanya ada error di kode nya. Untuk melihat errornya, bisa lihat menggunakan logs di herokunya,
Hapusheroku logs --tail -a nama-app-nya
Atau bisa hubungi saya https://t.me/om_karjok untuk tanya" lebih lanjut
Mas admin. ..
BalasHapusSaya 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...
.