Skip to content Skip to sidebar Skip to footer

Widget HTML #1

Cara Membuat Bot Telegram dengan Python

Cara Membuat Bot Telegram dengan Python

Panduan langkah demi langkah untuk menerapkan bot secara lokal yang menangani pesan pribadi dan grup

Foto oleh Christian Wiediger di Unsplash

Topik hari ini adalah menyiapkan bot Anda sendiri di Telegram dan menerapkannya secara lokal melalui metode yang disebut polling. Ini berarti Anda dapat mengembangkan dan menguji bot Anda di server Anda, selama bot itu terhubung ke internet. httpstidak diperlukan untuk ini, yang memungkinkan Anda untuk memulai proyek Anda segera. Anda selalu dapat mengukur proyek Anda nanti dengan mengkonfigurasi server Anda httpsdan menautkannya ke Telegram melalui webhook.

Di artikel ini, Anda akan belajar:

  • Tangani berbagai jenis pesan masuk dari pengguna
  • Kirim pesan langsung ke pengguna
  • Tangani pesan pribadi dan grup

“… Implementasi Python yang sederhana, namun dapat diperluas untuk Telegram Bot API.”

Mari lanjutkan ke bagian pertama dan mulai memasang modul yang diperlukan.

1. Penyiapan

Pastikan Anda telah menginstal Telegram di ponsel Anda. Kami akan membuat bot kami langsung di dalam Telegram dengan berinteraksi dengan BotFatherbot. Ini adalah bot resmi yang dibuat oleh Telegram untuk memfasilitasi pembuatan bot.

Mencari BotFather

Buka Telegram di ponsel Anda dan klik tombol pencarian di kanan atas antarmuka utama. Kemudian, ketik botfatherdi bilah pencarian. Anda harus melihat antarmuka pengguna berikut.

Gambar oleh Penulis

Klik pada pilihan pertama yang memiliki ikon centang biru di sampingnya. Ikon mewakili VerifiedBadge, yang menunjukkan bot atau perusahaan atau orang terkemuka yang disetujui oleh Telegram. Anda harus melihat antarmuka pengguna berikut:

Gambar oleh Penulis

Berinteraksi dengan BotFather

Klik Starttombol tersebut dan Anda akan melihat daftar perintah yang dapat Anda gunakan untuk berinteraksi BotFather.

Gambar oleh Penulis

Kirim pesan berikut ke BotFather.

/newbot

  • name: Nama tampilan untuk bot Anda.
  • username: Pengenal unik di semua bot di telegram. Anda tidak dapat menggunakan nama yang sudah ada di sistem. Juga, harus diakhiri dengan bot post-fix. Misalnya TetrisBot,, atau tetris_bot.
Gambar oleh Penulis

Privasi dalam obrolan grup

Jika Anda ingin menggunakan bot di dalam grup Telegram, Anda perlu memahami cara kerja privasi di Telegram. Secara default, bot tidak akan menerima semua pesan dalam obrolan grup. Berdasarkan dokumentasi resmi, itu hanya akan menerima:

  • Pesan perintah yang dimulai dengan /simbol garis miring (misalnya /help).
  • Balasan untuk pesan yang dikirim oleh bot Anda.
  • Pesan layanan (penambahan atau penghapusan orang dari grup).
  • Pesan dari saluran tempat bot adalah anggotanya.

/[email protected]_bot_username

@your_bot_username check_phone_status 012345678

Anda mungkin lebih suka menggunakan konvensi lama, di mana bot hanya merespons ketika diberi tag dengan @simbol:

@your_bot_username hello there

Untuk melakukannya, kirim pesan berikut ke BotFather:

/mybots

Gambar oleh Penulis

Klik pada bot yang diinginkan untuk menampilkan lebih banyak opsi sebagai berikut. Lanjutkan dengan mengetuk Bot Settings.

Gambar oleh Penulis

Anda akan melihat beberapa opsi yang terkait dengan grup. Klik pada Group Privacytombol tersebut.

Gambar oleh Penulis

Nonaktifkan pengaturan privasi grup dengan mengklik Turn offtombol. Bot Anda sekarang memiliki akses ke pesan yang dikirim dalam obrolan grup. Jika bot Anda sudah ada dalam grup, perubahan baru mungkin tidak tercermin atau disebarkan. Jika Anda mengalami masalah, cukup hapus dari grup dan tambahkan kembali ke grup lagi.

Menambahkan bot ke obrolan grup

Ada beberapa cara untuk menambahkan bot ke obrolan grup. Cara termudah adalah melakukannya langsung dari Telegram. Cari bot Anda dan klik Starttombolnya untuk memulai percakapan dengannya. Selanjutnya, klik nama bot yang terletak di bilah atas.

Gambar oleh Penulis

Anda harus melihat antarmuka berikut. Lanjutkan dengan mengklik tiga titik di kanan atas antarmuka.

Gambar oleh Penulis

Munculan akan muncul dengan opsi berikut. Ketuk Add to group pilihan.

Gambar oleh Penulis

Pilih grup yang diinginkan dan konfirmasi penambahan. Kembali ke grup dan periksa pengaturan untuk memastikan bahwa bot Anda memiliki akses ke pesan grup.

Gambar oleh Penulis

Menginstal paket Python

Kami sudah selesai dengan pengaturan Telegram, sekarang mari instal paket Python yang diperlukan untuk tutorial ini. Sebelum itu, pastikan Anda telah membuat lingkungan virtual. Aktifkan dan jalankan perintah berikut di terminal Anda.

pip install pyTelegramBotAPI

pip show pytelegrambotapi

Gambar oleh Penulis

Setelah Anda menyelesaikan penginstalan, lanjutkan ke bagian berikutnya dan mulailah menulis kode Python.

2. Implementasi

Buat file Python baru di direktori kerja Anda. Untuk kesederhanaan, saya akan testbot.pymenamainya (memodifikasi namanya sesuai).

Mengimpor modul

Tambahkan pernyataan import berikut di bagian atas file:

import telebot

Buat TeleBotinstance baru dengan meneruskan token Telegram yang kami buat sebelumnya:

bot = telebot.TeleBot("YOUR_TOKEN_HERE")

Secara default, parse_modediatur ke None, sehingga teks akan dikirim apa adanya. Jika Anda lebih suka memiliki fitur pemformatan dasar - seperti tebal, miring, dan garis bawah - Anda dapat menentukan ini saat membuat TeleBotinstance.

  • HTML: Pemformatan berdasarkan HTML.
  • MarkdownV2: Pemformatan berdasarkan Penurunan Harga.
  • bot = telebot.TeleBot("YOUR_TOKEN_HERE", parse_mode="MarkdownV2")
    

Menangani pesan masuk

Mari buat penangan pesan baru yang mewakili sekumpulan filter untuk pesan masuk. Jika sebuah pesan lolos filter, ia akan memanggil fungsi yang didekorasi dengan pesan asli sebagai parameternya. Pada saat penulisan, ini dilengkapi dengan filter berikut:

  • commands: Mengembalikan Trueif message.content_typeis textdan message.text: Dimulai dengan salah satu string yang ada dalam daftar yang ditentukan sebelumnya.
  • func: Berdasarkan hasil yang dikembalikan dari lambdafungsi tersebut.
  • content_types: Mengembalikan Truejika message.content_typeada dalam daftar yang ditentukan sebelumnya.
  • regexp: Mengembalikan Trueif message.content_typeis textdan re.search(regexp_args)is True.

@bot.message_handler(commands=['start'])
def handle_command(message):
    bot.reply_to(message, "Hello, welcome to Telegram Bot!")

Kemudian, panggil reply_tofungsi yang menerima dua parameter:

  • Sebuah Messageobjek yang merepresentasikan pesan. Ini berisi cukup banyak informasi seperti message_id, date, text, dll Anda hanya dapat melewati variabel pesan masukan.
  • Sebuah string mewakili pesan yang dikembalikan dari bot.

@bot.message_handler(func=lambda message: True)
def handle_all_message(message):
    bot.reply_to(message, message.text)

Jajak pendapat

Sekarang, mari tambahkan sentuhan terakhir ke file kita dengan kode berikut:

bot.polling()

Ini adalah fungsi pemblokiran yang berarti kode di bawahnya tidak akan dijalankan. Pastikan untuk meletakkannya di akhir file Anda. Juga, jangan menyebutnya lebih dari sekali, atau kesalahan akan terjadi. Jika Anda ingin menskalakan proyek Anda, gunakan webhook sebagai gantinya. Menjalankan beberapa server polling tidak akan berfungsi!

The pollingFungsi menerima parameter berikut:

  • none_stop: Boolean untuk menentukan apakah pemungutan suara harus berhenti saat terjadi kesalahan. Nilai defaultnya adalah False.
  • interval: Integer mewakili interval antara permintaan polling. Secara default, ini disetel ke 0. Menyetelnya ke nilai lain yang lebih tinggi dari 0 akan memengaruhi waktu respons
  • timeout: Batas waktu dalam hitungan detik untuk pemungutan suara yang lama. Nilai defaultnya adalah 20.

Menjalankan Server Anda

Pastikan terminal sekarang mengarah ke direktori kerja tempat file Python Anda berada. Pastikan mesin Anda terhubung ke internet. Jalankan perintah berikut untuk memulai polling, ubah nama sesuai kebutuhan:

python testbot.py

Gambar oleh Penulis

Membedakan Pesan Pribadi dan Grup

Anda dapat dengan mudah membedakan pesan masuk pribadi dari pesan grup dengan memeriksa message.chat.typevariabel. Opsi yang tersedia adalah sebagai berikut:

  • Pribadi
  • Kelompok
  • Supergrup
  • Saluran

@bot.message_handler(func=lambda message: True)
def handle_all_message(message):
    if message.chat.type == "private":
        bot.reply_to(message, message.text)
    elif message.chat.type == "group":
        bot.reply_to(message, "Hello to all!")

Membalas Hanya Saat Diberi Tag

Sekarang, kami memiliki masalah baru: Bot kami akan menanggapi setiap pesan dalam obrolan jika Anda telah mengaturnya menjadi admin atau telah menonaktifkan pengaturan privasi. Untuk mengatasi ini, setel kondisi lain yang membatasi balasan jika dan hanya jika bot diberi tag dalam pesan. Ganti username_of_your_botdengan nama pengguna yang Anda tetapkan:

@bot.message_handler(func=lambda message: True)
def handle_all_message(message):
    if message.chat.type == "private":
        bot.reply_to(message, message.text)
    elif message.chat.type == "group":
        if('@username_of_your_bot' in message.text):
            bot.reply_to(message, "Hello to all!")

Untuk saat ini, bot kami hanya mampu membalas pesan teks. Ini tidak akan berfungsi dengan baik ketika pengguna mengirim file atau stiker. Anda dapat membuat penangan pesan baru dan menentukan yang diterima content_typesdalam daftar. Kode berikut menggambarkan bagaimana Anda dapat mengembalikan stiker yang sama ke pengguna:

@bot.message_handler(content_types=['sticker'])
def handle_sticker(message):
    bot.send_sticker(message.chat.id, message.sticker.file_id)

Jalankan ulang server Anda dan Anda akan melihat sesuatu seperti ini ketika Anda mengirim stiker ke bot Anda:

Gambar oleh Penulis

Kesimpulan

Selamat telah menyelesaikan tutorial ini! Mari kita rekap apa yang telah kita pelajari hari ini.

Kami mulai dengan membuat bot kami di Telegram dengan berinteraksi dengannya BotFather. Kami juga membuat lingkungan virtual baru dan menginstal pyTelegramBotAPIpaket di dalamnya.

Setelah itu, kami melanjutkan untuk membuat TeleBotinstance baru berdasarkan token yang kami peroleh sejak awal pembuatan bot. Kami menerapkan beberapa penangan pesan untuk menangani perintah dan semua pesan masuk.

Selain itu, kami juga belajar membedakan antara pesan pribadi dan pesan grup. Kami dapat dengan mudah menangani stiker dengan menentukan yang diterima content_typesdi penangan pesan kami.

Sekarang, Anda harus dapat membuat bot Telegram Anda sendiri secara lokal di mesin Anda, selama itu terhubung ke internet.

Terima kasih telah membaca artikel ini - Saya berharap dapat bertemu Anda lagi di artikel berikutnya!

Referensi

  • Github - pyTelegramBotAPI
  • API Bot Telegram
  • StackOverflow - Cara menambahkan bot ke Grup Telegram
  • StackOverflow - Izinkan bot mengakses Pesan Grup Telegram
AnonSec Team
AnonSec Team Mungkin ketidaksempurnaan kita yang membuat kita begitu sempurna satu sama lain.Cinta adalah ruang dan waktu yang diukur oleh hati.Cinta terdiri dari satu jiwa yang menghuni dua tubuh.Kamu mungkin memegang tanganku untuk sementara waktu, tetapi kamu memegang hatiku selamanya.

Post a Comment for "Cara Membuat Bot Telegram dengan Python"