Telegram adalah salah satu aplikasi pesan instan yang semakin populer. Salah satu fitur menarik dari Telegram adalah kemampuan untuk membuat bot yang dapat melakukan berbagai tugas otomatis. Di artikel ini, kita akan membahas cara membuat bot Telegram sederhana menggunakan Python yang dapat mengirimkan fakta harian kepada penggunanya.
Mengapa Membuat Bot Telegram?
Bot Telegram memungkinkan kita untuk mengautomasi berbagai tugas, dari sekadar mengirim pesan sampai melakukan operasi rumit. Dalam proyek ini, kita akan membuat bot yang akan mengirimkan faktanya setiap hari. Ini bisa menjadi alat yang menyenangkan dan edukatif.
Prasyarat
Sebelum kita mulai, pastikan Anda telah memenuhi syarat berikut:
- Python: Anda perlu memiliki Python terinstal pada sistem Anda.
- Pip: Pastikan pip, package manager untuk Python, juga terinstal.
- Akun Telegram: Anda perlu memiliki akun Telegram untuk membuat dan mengelola bot.
- Library
python-telegram-bot
: Kita akan menggunakan library ini untuk membuat bot kita.
Langkah-langkah Membuat Bot Telegram
Langkah 1: Membuat Bot di Telegram
- Buka Telegram.
- Cari pengguna
@BotFather
. - Kirim pesan
/newbot
untuk membuat bot baru. - Ikuti instruksi yang diberikan, termasuk memberikan nama bot dan username bot. Setelah selesai, Anda akan menerima token API yang akan digunakan untuk mengakses bot Anda.
Langkah 2: Instalasi Library Python
Buka terminal atau command prompt dan jalankan perintah berikut untuk menginstal library python-telegram-bot
:
pip install python-telegram-bot
Langkah 3: Siapkan Fakta Harian
Buat daftar fakta harian yang ingin Anda kirimkan. Anda dapat menyimpannya dalam format list atau file JSON. Untuk contoh ini, mari kita buat daftar dalam skrip Python kita.
facts = [
"Fakta 1: Ulat kepompong memberikan warna yang berbeda saat berubah menjadi kupu-kupu.",
"Fakta 2: Kucing dapat mengeluarkan lebih dari 100 suara berbeda.",
"Fakta 3: Planet Mars disebut juga sebagai planet merah.",
"Fakta 4: Otak manusia terdiri dari sekitar 75% air.",
"Fakta 5: Gajah adalah mamalia darat terbesar di dunia.",
]
Langkah 4: Membuat Skrip Bot Telegram
Buat file Python baru, misalnya daily_facts_bot.py
, dan tambahkan kode berikut:
import random
import logging
from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext
# Aktifkan logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
# Daftar fakta harian
facts = [
"Fakta 1: Ulat kepompong memberikan warna yang berbeda saat berubah menjadi kupu-kupu.",
"Fakta 2: Kucing dapat mengeluarkan lebih dari 100 suara berbeda.",
"Fakta 3: Planet Mars disebut juga sebagai planet merah.",
"Fakta 4: Otak manusia terdiri dari sekitar 75% air.",
"Fakta 5: Gajah adalah mamalia darat terbesar di dunia.",
]
# Fungsi untuk mengirimkan fakta acak
def send_fact(update: Update, context: CallbackContext) -> None:
fact = random.choice(facts)
update.message.reply_text(fact)
def main() -> None:
# Masukkan token API bot Anda
updater = Updater("YOUR_TELEGRAM_BOT_API_TOKEN")
updater.dispatcher.add_handler(CommandHandler("fact", send_fact))
# Jalankan bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
Simpan file tersebut dan pastikan untuk mengganti "YOUR_TELEGRAM_BOT_API_TOKEN"
dengan token yang Anda dapatkan dari BotFather.
Langkah 5: Menjalankan Bot
Setelah skrip Anda siap, jalankan bot dengan perintah:
python daily_facts_bot.py
Bot sekarang seharusnya berjalan dan siap menerima perintah. Anda dapat mencobanya dengan membuka Telegram dan mencari bot Anda. Ketik /fact
untuk mendapatkan fakta acak.
Langkah 6: Menjadwalkan Pengiriman Fakta Harian
Untuk mengirimkan fakta secara otomatis setiap hari, kita perlu menggunakan scheduler. Kita dapat menggunakan library schedule
untuk ini. Instal terlebih dahulu dengan perintah:
pip install schedule
Kemudian, perbarui skrip Anda untuk menambahkan fitur pengiriman otomatis. Berikut adalah contoh cara melakukannya:
import schedule
import time
# Fungsi baru untuk mengirimkan fakta setiap hari
def daily_fact(context: CallbackContext):
fact = random.choice(facts)
context.bot.send_message(chat_id=context.job.chat_id, text=fact)
def start_daily_facts(update: Update, context: CallbackContext):
chat_id = update.message.chat_id
context.job_queue.run_daily(daily_fact, time=10, context=chat_id) # Mengirim fakta setiap hari pada jam 10:00
def main() -> None:
updater = Updater("YOUR_TELEGRAM_BOT_API_TOKEN")
updater.dispatcher.add_handler(CommandHandler("start_daily_facts", start_daily_facts))
updater.start_polling()
updater.idle()
Dengan menambahkan handler untuk /start_daily_facts
, pengguna dapat mulai menjadwalkan pengiriman fakta harian.
Kesimpulan
Anda sekarang telah berhasil membuat bot Telegram sederhana yang dapat mengirimkan fakta harian. Anda dapat mengembangkan bot ini lebih lanjut dengan menambahkan fitur, seperti pengiriman fakta berdasarkan kategori, interaksi lebih lanjut dengan pengguna, atau integrasi dengan basis data eksternal untuk mendapatkan fakta yang lebih beragam.
Dengan mengikuti langkah-langkah yang telah dipandu, Anda dapat mengeksplorasi berbagai ide dan proyek yang bisa Anda buat menggunakan Telegram Bot dan Python. Selamat mencoba!