Sharing guidance & code for setting up a Telegram logger bot. It logs all data entered to the bot into a Google Spreadsheet.

Bot in action
Steps
- Create Telegram bot using botfather.
- Set up a Spreadsheet for logging data.
- Set up Google Apps Script. Copy code below.
- Deploy as web app. Set access to “Anyone, even anonymous”
- Initialise bot token, spreadsheet id & web app url values in code
- Set web hook by running the setWebhook() function.
Notes
- Each time you make changes to the code, make sure your deploy as web app again (and also have the version number changed when you do so).
- If you change the name of your sheet, make sure to have it also reflected in your code. Sheet1 is the default value of sheet in a new spreadsheet.
Code// initialise these values
var ssID = "1J-rID8K6DNt2jeMZ7DWOH5YA7baYKTiWl1pJ3iE"; //change this to id of sheet
var token = "5672193:AAEhKCprHAOc9XfQ4HKilPyU"; //insert your bot token here
var webAppUrl = "https://script.google.com/macros/s/AKfycbzSnIgGodPMOnqE8Az/exec";//change this url once you set up the webhookvar url = "https://api.telegram.org/bot" + token;function doPost (e){
var contents = JSON.parse(e.postData.contents);
var text = contents.message.text;
var id = contents.message.from.id;
var name = contents.message.from.first_name + " " + contents.message.from.last_name;
var first_name = contents.message.from.first_name;var ss = SpreadsheetApp.openById(ssID);
ss.getSheetByName('Sheet1').appendRow([new Date(),id, first_name,text]);
sendText(id, "Added to sheet");
}
function sendText(id, text) {
var response = UrlFetchApp.fetch(url + "/sendMessage?chat_id=" + id + "&text=" + text);
Logger.log(response.getContentText());
}// run this function one time for setting web hook
function setWebhook() {
var response = UrlFetchApp.fetch(url + "/setWebhook?url=" + webAppUrl);
Logger.log(response.getContentText());
}
Improvements that can be made to code
- Create spreadsheet through code itself.
- Have key values set as project properties & masked.
Screengrabs

Create Telegram bot using botfather

Deploy as web app

Select access as “Anyone, even anonymous”

Initialise project variables

set webhook by running the function
Bot in action
## ## ######## ## ###### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ######## ## ###### ## ## ## ## ## ## ## ## ## ## ## ## ## ####### ## ## ######## ###### ######## ## ## ######## ### ## ## ######## ## ## ## ## ## ## ## ### ## ## ## ## ## ## ## ## ## ## #### ## ## ## ###### ### ######## ## ## ## ## ## ## ## ## ## ## ## ######### ## #### ## ## ## ## ## ## ## ## ## ### ## ## ######## ## ## ## ## ## ## ## ######## ####### ## ## ## ## ### ## ## ## #### ## ## ## ## ## ## ## ## ## #### ## ## ## ### ####### ## ## ######## ####### ###### ######## ## ## ### ## ## ######## ## ## #### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ### ## #### ## ## ## ## ## ## ## ## ## ## ## ## ## #### ## #### ######## ## ## ###### ## ######### ## ## ## ## ###### ## ## ## ## ## ## ## ## ## ## ## ######### ## ## ## ## #### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ### #### ## ####### ###### ## ## ## ## ## ### ######## ## ## #### view rawurls-expand-on-posthaven.txt hosted with ❤ by GitHub