Tạo Telegram bot để phục vụ làm việc với GoogleSheet
1. Bài toán
Việc truy xuất các dữ liệu trên một file Excel hay GoogleSheet là rất dễ dàng với những người có kĩ năng Office cơ bản.
Tuy nhiên với một người không có kiến thức đủ để làm việc với Excel, GoogleSheet hoặc muốn truy xuất thông tin từ file ngay lập tức mà lại đang không có các công cụ hỗ trợ làm việc, viết các câu lệnh trên Excel, GoogleSheet, thì việc truy xuất dữ liệu này sẽ trở nên khó khăn.
Khi đó việc tạo một trợ lý ảo, một con bot giúp người dùng có thể truy cập đến dữ liệu trên một file Excel, GoogleSheet là một việc rất hữu ích.
Ở đây tôi sẽ dùng bot trên Telegram vì đây là một ứng dụng nhắn tin khá phổ biến và cho phép developer phát triển nhiều thứ trên đó.
Về ngôn ngữ lập trình tôi sẽ sử dụng Python vì ngôn ngữ này cho phép developer làm việc dễ dàng với Excel, GoogleSheet.
2. Tạo bot trên Telegram
Đầu tiên người dùng cần phải truy cập vào ứng dụng Telegram, vào thanh tìm kiếm và tìm kiếm từ khoá BotFather
Gõ lệnh /newbot để tạo bắt đầu tạo bot mới
Tiếp theo chúng ta sẽ đặt tên cho bot của mình.
Sau khi đặt tên BotFather sẽ yêu cầu chúng ta chọn username cho con bot, đây cũng chính là tên giúp chúng ta có thể tìm kiếm con bot ở trên Telegram như các tìm kiếm một người dùng.
Sau khi hoàn thành xong bước trên BotFather sẽ gửi lại cho chúng ta thông tin về bot
Tạo file main.py: file này sẽ bao gồm các thao tác làm việc với bot Telegram
bot = telebot.TeleBot(BOT_TOKEN): tạo một instance của bot Telegram
@bot.message_handler(commands=[]): đoạn code sẽ tạo phương thức lắng nghe lệnh điều khiển từ người dùng
bot.reply_to(): gửi lại tin nhắn tới người dùng
bot.infinity_polling(): câu lệnh cho phép bot Telegram sẽ lắng nghe liên tục các thông tin, lệnh từ phía người dùng
bot.send_message(): gửi lại câu trả lời cho tin nhắn nhận được từ người dùng
bot.register_next_step_handler(): đăng ký function sẽ được thực thi ngay sau khi nhận được phản hồi từ phía người dùng
file_path = message.text: đọc tin nhắn, câu lệnh được gửi từ phía người dùng
import os
import telebot
from dotenv import load_dotenv
load_dotenv()
from utils import read_data_from_file, write_data_to_file
BOT_TOKEN = os.environ.get('BOT_TOKEN')
bot = telebot.TeleBot(BOT_TOKEN)
@bot.message_handler(commands=['start', 'hello'])
def send_welcome(message):
bot.reply_to(message, "Howdy, how are you doing?")
@bot.message_handler(commands=['read_record'])
def send_welcome(message):
sent_msg = bot.send_message(message.chat.id, "So, what link would you like to read?")
bot.register_next_step_handler(sent_msg, read_csv_xlsx_handler)
def read_csv_xlsx_handler(message):
file_path = message.text
result = read_data_from_file(file_path)
if (result == None): bot.send_message(message.chat.id, "Could not read")
else: bot.send_message(message.chat.id, result)
bot.infinity_polling()
Để chạy con bot của mình ta cần gõ lệnh sau trên terminal:
Leave a Reply