Я новичок в javascript и Telegram-ботах. Мне удалось связать моего бота телеграммы с листами Google, и я хочу сохранить имена отправителей, отправляющих сообщения моему боту, в листах Google. Функция отлично работает, если бот не является частью группового чата, но если он есть, то выдает отрицательное значение для идентификатора пользователя и неопределенное сообщение для имени пользователя.
Мой код выглядит следующим образом (я удалил актуальную информацию для листа и бота):
var token = ""; //Token of Telegram Bot
var telegramUrl = "https://api.telegram.org/bot" + token;
//connects bot and telegram chat
var webAppUrl = "";
var ssId = "";
function getMe() //gets the bot info
{
var url = telegramUrl + "/getme";
var response = UrlFetchApp.fetch(url);
Logger.log(response.getContentText());
}
function setWebhook() //links url of project
{
var url = telegramUrl + "/setWebhook?url=" + webAppUrl;
var response = UrlFetchApp.fetch(url);
Logger.log(response.getContentText());
}
function sendText(id,text) //sends confirmation text
{
var url = telegramUrl + "/sendMessage?chat_id=" + id + "&text=" + text;
var response = UrlFetchApp.fetch(url);
Logger.log(response.getContentText());
}
function doPost(e) //
{
var data = JSON.parse(e.postData.contents);
var str = data.message.text;
var id = data.message.chat.id;
var name = data.message.chat.first_name + " " + data.message.chat.last_name;
SpreadsheetApp.openById(ssId).getSheets()[0].appendRow([new
Date(),id,name,str]);
}