Cara Membuat Bot Telegram Sederhana untuk Mengirim Fakta Harian dengan Python

3 min read 24-08-2024
Cara Membuat Bot Telegram Sederhana untuk Mengirim Fakta Harian dengan Python

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:

  1. Python: Anda perlu memiliki Python terinstal pada sistem Anda.
  2. Pip: Pastikan pip, package manager untuk Python, juga terinstal.
  3. Akun Telegram: Anda perlu memiliki akun Telegram untuk membuat dan mengelola bot.
  4. Library python-telegram-bot: Kita akan menggunakan library ini untuk membuat bot kita.

Langkah-langkah Membuat Bot Telegram

Langkah 1: Membuat Bot di Telegram

  1. Buka Telegram.
  2. Cari pengguna @BotFather.
  3. Kirim pesan /newbot untuk membuat bot baru.
  4. 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!