QC

Hướng dẫn tạo telegram bot - Phần 2 tạo bot bằng python

Hướng dẫn tạo telegram bot - Phần 2 tạo bot bằng python. Bài này hướng dẫn một số code cơ bản để tạo một con bot telegram reply lại tin nhắn mỗi khi nó nhận được tin nhắn từ người dùng :)

Sau khi có được TOKEN từ bài trước: Hướng dẫn tạo telegram bot - Phần 1 tạo bot từ bot father. Bạn cũng có thể tham khảo các ví dụ về bot tại đây, mình dùng ví dụ này để minh họa: https://bit.ly/3oU3QNK


Đầu tiên chúng ta tạo môi trường để làm việc cũng như tải các thư viện cần thiết để python bot có thể hoạt động nhé. 

Bước 1: Chúng ta cài python-telegram-bot bằng lệnh: pip install python-telegram-bot.code-box 

Bước 2: Tiếp theo khi đã có thư viện của python-telegram-bot rồi chúng ta tiến hành import những thứ cần thiết vào để sử dụng nhé. Nếu cần thêm chức năng gì thì import thêm để sử dụng nhé.
Document của python-telegram-bot các bạn có thể đọc tại đây: https://bit.ly/3dU3iBs
import logging

from telegram import Update, ForceReply
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext

Ở bước này chúng ta sử dụng  update , ForceReply, Updater, CommandHandler, MessageHandler, Filters, CallbackContext. Chức năng tương tự như tên gọi của nó. Ví dụ Update là cập nhật trạng thái mới nhất của bot. Lệnh Update này sẽ gọi api getUpdate của telegram Telegram Bot API. Tương tự như vậy cho các object khác chúng ta có thể đọc thêm tài liệu của PTB nhé.


Bước 3: Sau khi đã khai báo các thứ cần thiết thì chúng ta tiến hành tạo một số function(): cho bot để thực hiện một số việc.

def start(update: Update, context: CallbackContext) -> None:

    """Gửi tin nhắn khi có lệnh /start """

            user = update.effective_user

            update.message.reply_markdown_v2( fr'Hi {user.mention_markdown_v2()}\!',  reply_markup=ForceReply(selective=True),)

Như vậy sau khi tạo hàm này xong, mỗi khi gõ /start thì telegram bot sẽ gửi một tin nhắn lại cho chúng ta với nội dụng là "Hi {tên bạn}". 

Đây là hàm echo() dùng để gửi tin nhắn trở lại người dùng:

def echo(update: Update, context: CallbackContext) -> None:

    """Echo the user message."""

    update.message.reply_text(update.message.text)

Các thông số truyền vào  update.message.reply_text() chúng ta có thể tham khảo Document https://bit.ly/3dU3iBs

Các hàm khác chúng ta chỉ việc tạo ra để làm những việc chúng ta cần nhé. :)) Mình không hướng dẫn code như thế nào đâu nhé.

Bước 4: Sau khi có hàm rồi làm thế nào để bot hoạt động?

Chúng ta tạo một hàm main () để bot có thể chạy nhé. Chúng ta cần một CommandHandler để quản lý các command ở ví dụ này command mình sử dụng là start. Do đó chúng ta sẽ sử dụng dispatcher.add_handler(CommandHandler("start", start)) - có nghĩa là khi chúng ta gọi lệnh /start thì CommandHandler sẽ gọi hàm start() để chạy.


def main() -> None:

    """Start the bot."""

             # Sử dụng TOKEN mà bạn đã lấy ở bài trước để thay vào chữ TOKEN màu đỏ để bot hoạt                     động nhé 

    updater = Updater("TOKEN")

    # Get the dispatcher to register handlers

    dispatcher = updater.dispatcher

    # on different commands - answer in Telegram

              dispatcher.add_handler(CommandHandler("start", start))

    dispatcher.add_handler(CommandHandler("help", help_command))

    # on non command i.e message - echo the message on Telegram

    dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))


    # Start the Bot

    updater.start_polling()


    # Run the bot until you press Ctrl-C or the process receives SIGINT,

    # SIGTERM or SIGABRT. This should be used most of the time, since

    # start_polling() is non-blocking and will stop the bot gracefully.

    updater.idle()

if __name__ == '__main__':

    main()

Bước 5: Chạy bot thì giống cách chạy file python khác. Chúng ta sử dụng lệnh python botname.py bằng terminal là được.

Chúng ta hoàn toàn tải Example bot này về để chạy thử thí nghiệm và tạo ra các chức năng hay ho cho bot nhé. Mình tạo các con bot rút gọn link và forward ảnh, video https://t.me/lhtvnbot, tải báo khoa học https://t.me/sci_download_bot phục vụ nhu cầu cá nhân.

Ngoài ra chúng ta còn có thể tạo bot bằng pyrogram để có thể gửi file lên đến 2GB: Hướng dẫn tạo Telegram Bot bằng Pyrogram sử dụng python (letuan.edu.vn)

Phần 3 hướng dẫn chạy telegram trên heroku: Hướng dẫn tạo telegram bot - Phần 3 chạy telegram bot trên server heroku (moinhat123.blogspot.com)

Post a Comment

Previous Post Next Post