Skip to content

Connect telegram with google sheets to create spending management chat BOT

Notifications You must be signed in to change notification settings

letranduytan/ExpenseManagementTelegramBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

Expense Management with TelegramBot

Connect telegram with google sheets

Cài đặt Webhook

Trước khi bắt đầu, hãy dán URL của ứng dụng web và chạy hàm setWebhook.

Phương thức: https://api.telegram.org/bot<token>/METHOD_NAME

var webapp = 'điền URL web app của bạn vào đây' 
var token = 'điền token bot của bạn vào đây'; 
var url = 'https://api.telegram.org/bot' + token;
var chatid = 'điền chat id vào đây';
  • Để lấy chat ID cá nhân, hãy sử dụng bot @userinfobot.
  • Để lấy chat ID của nhóm, làm theo các bước sau:
    1. Thêm bot vào một nhóm mới.
    2. Gửi một tin nhắn trong nhóm có nhắc đến bot.
    3. Dán URL sau vào trình duyệt (với token bot của bạn): https://api.telegram.org/bot<token>/getUpdates.
    4. Lấy chat ID từ kết quả.

Kết nối Sheets & Telegram

Đặt Webhook

function setWebhook(){
      var response = UrlFetchApp.fetch(url + '/setWebhook?url=' + webapp) 
      Logger.log(response)
}

Gửi tin nhắn từ bot đến bạn (hoặc nhóm)

function sendMessage(body){
  var response = UrlFetchApp.fetch(url + '/sendMessage?chat_id=' + chatid + '&text=' + encodeURIComponent(body) + '&parse_mode=HTML')
}

Quản lý Google Sheets từ Telegram

Mã chức năng doPost

  • Giải thích: Hàm doPost sẽ kết nối đến Google Sheets và xử lý tin nhắn Telegram để ghi dữ liệu thu/chi vào Sheets.
function doPost(e){
  // Kết nối đến bảng tính đích
  const ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('điền tên sheet của bạn vào đây')
  
  // Lấy nội dung từ payload của Telegram
  var contents = JSON.parse(e.postData.contents)
  
  // Lấy trường văn bản từ tin nhắn
  var text = contents.message.text
  
  // Loại bỏ "/collect" hoặc "/spend" khỏi tin nhắn
  var newText = text.substring(text.indexOf(' ') + 1)
  
  // Tách loại chi phí và số tiền
  var split = newText.split(',')

  // Nếu tìm thấy số tiền
  if(split[1] != null){

  // Thay thế đơn vị tr = 6 số 0, k = 3 số 0 (cách nhập nhanh số tiền)
  var number = split[1].replace('tr','000000').replace('k','000')

  // Nếu loại chi phí là "collect" (thu)
  if(text.includes('/collect')){
    // Thêm một dòng mới vào cột A, B, C
    const range = ss.appendRow([new Date(),split[0],number])
    // Lấy tổng thu nhập <đặt trong ô H1 dùng hàm SUM>
    const totalincome = ss.getRange("H1").getValue()
    
    // Gửi tin nhắn đến Telegram với liên kết đến Sheets
    sendMessage("Tổng thu nhập hiện tại là: " + totalincome + ". Liên kết để theo dõi thu nhập: <a href='Link đến bảng tính của bạn'>Sheets</a>")

  }
  // Tương tự với "/spend" (chi)
  else if(text.includes('/spend')){
    const range = ss.appendRow([new Date(),split[0],number])
    const totalexpenditure = ss.getRange("H2").getValue()
    sendMessage("Tổng chi hiện tại là: " + totalexpenditure + ". Liên kết để theo dõi chi tiêu: <a href='Link đến bảng tính của bạn'>Sheets</a>")
  }
  
} else
sendMessage("Sai cú pháp nhập, vui lòng nhập: " + "/collect, giá trị " + "hoặc " + "/spend, giá trị " + "Liên kết để theo dõi chi tiêu <a href='Link đến bảng tính của bạn'>Sheets</a>")
}

Ảnh minh họa bot quản lý chi tiêu

Output

About

Connect telegram with google sheets to create spending management chat BOT

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published