Skip to content

Instantly share code, notes, and snippets.

@tayyebi
Created March 2, 2020 08:19
Show Gist options
  • Save tayyebi/927aee5787ba45b3ab0fd637bedfd653 to your computer and use it in GitHub Desktop.
Save tayyebi/927aee5787ba45b3ab0fd637bedfd653 to your computer and use it in GitHub Desktop.
Sync Telegram and Email using Google Apps Script
function myFunction() {
var bot_token = "1097946362:AAFIqSpcWaQto-JGSGIn4gi7RriuWUtqb30";
var base_url = "https://api.telegram.org/bot" + bot_token + "/";
// Open spreadsheet
var FileNameString = "TelegramBot";
var FileIterator = DriveApp.getFilesByName(FileNameString);
while (FileIterator.hasNext())
{
var file = FileIterator.next();
if (file.getName() == FileNameString)
{
// Open the file
var spreadsheet = SpreadsheetApp.open(file);
var fileID = file.getId();
// Find maximum in column
var active_sheet = spreadsheet.getActiveSheet();
var last_row = active_sheet.getLastRow();
var last_column = active_sheet.getLastColumn();
var last_row_first_column = active_sheet.getRange(last_row,1)
var update_id = last_row_first_column.getValues();
update_id++;
// Get messages from telegram
var response = UrlFetchApp.fetch(base_url + "getUpdates?offset=" + update_id);
// Get last message
var results = JSON.parse(response.getContentText()).result;
var results_count = results.length;
for (var i=0;i<results_count;i++) {
// Get current result
var result = results[i];
// Get parts
var updateid = result.update_id;
var username = result.message.chat.username;
var chatid = result.message.chat.id;
var date = result.message.date;
var text = result.message.text;
var messageid = result.message.message_id;
// Append to sheet
spreadsheet.appendRow([updateid, username, chatid, date, text, messageid]);
// Send email to notify me
var emailAddress = 'tayyebi_mohammadreza@hotmail.com';
var message = text;
var subject = 'A new telegram message from: ' + username + ' | message_id: ' + messageid;
MailApp.sendEmail(emailAddress, subject, message);
// send message to client
var sendmessage = UrlFetchApp.fetch(base_url + "sendMessage?chat_id=" + chatid
+ "&text=پیغام شما دریافت شد"
+ "&reply_to_message_id=" + messageid
);
}
Logger.log('Script exited successfuly');
}
}
/*
// https://core.telegram.org/bots/api
{
"ok": true,
"result": [
{
"update_id": 391387710,
"message": {
"message_id": 1,
"from": {
"id": 631786986,
"is_bot": false,
"first_name": "محمدرضا",
"last_name": "طیبی",
"username": "mrezatayyebi"
},
"chat": {
"id": 631786986,
"first_name": "محمدرضا",
"last_name": "طیبی",
"username": "mrezatayyebi",
"type": "private"
},
"date": 1583099702,
"text": "/start",
"entities": [
{
"offset": 0,
"length": 6,
"type": "bot_command"
}
]
}
},
{
"update_id": 391387711,
"message": {
"message_id": 2,
"from": {
"id": 631786986,
"is_bot": false,
"first_name": "محمدرضا",
"last_name": "طیبی",
"username": "mrezatayyebi",
"language_code": "fa"
},
"chat": {
"id": 631786986,
"first_name": "محمدرضا",
"last_name": "طیبی",
"username": "mrezatayyebi",
"type": "private"
},
"date": 1583099704,
"text": "Hello"
}
}
]
}
*/
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment