Created
March 2, 2020 08:19
-
-
Save tayyebi/927aee5787ba45b3ab0fd637bedfd653 to your computer and use it in GitHub Desktop.
Sync Telegram and Email using Google Apps Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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