Giới Thiệu về Google App Script
Google App Script là một nền tảng mã nguồn mở cho phép người dùng tự động hóa các tác vụ trên các dịch vụ của Google, như Google Sheets, Gmail, Google Docs, v.v. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo một bot Telegram thông báo số lượng email chưa đọc cuối ngày bằng Google App Script.
Cấu Trúc Bài Viết
- Giới thiệu về Google App Script và soạn thảo chương trình Hello World đầu tiên
- Tìm hiểu về hàm (Function) và đối tượng (Object)
- Hướng dẫn lập lịch (Schedule) cho bot
Tại Sao Nên Tạo Bot Thông Báo Email
Đối với những người có công việc bận rộn, việc kiểm tra email có thể dễ dàng bị bỏ quên. Chính vì vậy, một ứng dụng miễn phí được viết bằng Google App Script sẽ gửi thông báo qua Telegram, giúp bạn nhận biết số lượng email chưa đọc và nhắc nhở bạn kiểm tra nội dung của chúng.
Lấy Danh Sách Email Chưa Đọc
Chúng ta sẽ sử dụng hàm sau để truy xuất các email trong hộp thư chính:
javascript
GmailApp.search("category:primary", 0, 50);
Hàm trên trả về một danh sách các đối tượng GmailThread
. Một GmailThread
đại diện cho một chuỗi hội thoại email, giúp chúng ta dễ dàng xử lý các email chưa đọc.
In Thông Tin Email
Đầu tiên, chúng ta sẽ viết một hàm để in thông tin của một GmailThread
:
javascript
function printThreadMail(thread) {
var message = thread.getMessages()[0];
var emailSubject = message.getSubject();
var emailSender = message.getFrom();
var emailSnippet = message.getPlainBody().slice(0, 100);
var str = "📧 *Email Mới*\n" +
"👤 Từ: " + emailSender + "\n" +
"📌 Tiêu đề: " + emailSubject + "\n" +
"📝 Nội dung: " + emailSnippet;
Logger.log(str);
return str;
}
Đếm Số Lượng Email Chưa Đọc
Tiếp theo, chúng ta sẽ tạo một hàm để đếm số lượng email chưa đọc trong hộp thư:
javascript
function countUnreadEmails() {
var threads = GmailApp.search("category:primary", 0, 50);
var unreadCount = 0;
var strUnread = "";
threads.forEach(function(thread) {
if (thread.isUnread()) {
unreadCount++;
if (strUnread == "") {
strUnread = printThreadMail(thread) + "\n\n-----------------------------";
}
}
});
return [unreadCount, strUnread];
}
Hàm này sẽ trả về số lượng email chưa đọc và thông tin của email đầu tiên chỉ để gửi qua Telegram.
Hàm Chính và Gửi Tin Nhắn Qua Telegram
Cuối cùng, chúng ta sẽ tạo hàm chính như sau:
javascript
function main() {
var unreadCount;
var strUnread;
var today = new Date();
[unreadCount, strUnread] = countUnreadEmails();
var dateF = formatDate(today);
var message = `[${dateF}] Số email chưa đọc trong hộp thư: ${unreadCount}\n\n-----------------------------\n\n`;
message += strUnread;
// Định nghĩa hằng số
var botToken = '<botToken>';
var chatId = '<chatId>';
sendMessage(message, botToken, chatId);
}
Hàm sendMessage
và formatDate
sẽ giúp định dạng lại ngày tháng và gửi tin nhắn qua Telegram. Chúng tôi sẽ cung cấp hướng dẫn về việc này trong bài viết sau.
Lập Lịch Chạy Bot
Sau khi hoàn tất, bạn cần lập lịch cho bot chạy vào khoảng 10-11h tối. Hướng dẫn lập lịch có thể tìm thấy trong bài viết về lập lịch (Schedule).
Kết Quả Cuối Cùng
Khi chạy bot thành công, bạn sẽ nhận được thông báo số lượng email chưa đọc và thông tin về email mới nhất.
Bài viết gốc được đăng tải tại: Google Script Hub
source: viblo