Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Google sheet - не работает скрипт (https://javascript.ru/forum/misc/85787-google-sheet-ne-rabotaet-skript.html)

qqAndrey 06.03.2024 17:50

Google sheet - не работает скрипт
 
Вечер добрый, пытаюсь написать скрипт для google таблицы.
Лист Остатков, надо, чтобы когда в ячейке, например D9 значение(формулой вычисляется) становилось меньше 100, то в телеграм чат отправлялось сообщение об этом
И каждый раз, когда оно становилось меньше 100 это действие повторялось

У меня получилось следующее:

function onEdit(e) {
  // Check if the 'e' object and 'range' property exist
  if (e && e.range) {
    // Определите диапазон данных
    var range = e.range;

    // Проверьте, что диапазон существует и не является пустым
    if (range && range.getValues) {
      // Определите ячейку D9
      var cellD9 = range.getValues()[8][3]; // 8 - номер строки (I), 3 - номер столбца (D)

      // Токен API бота
      var botToken = "7010378791:AAFWIhOS678863izmqymNhLcuqpa9seeN7s";

      // ID чата Telegram
      var chatId = "-887278460";

      // Текст сообщения
      var message = "**Внимание! Значение в ячейке D9 меньше 100!**\n\nЗначение: " + cellD9;

      // Отправьте сообщение боту, если значение меньше 100
      if (cellD9 < 100) {
        var options = {
          "method": "post",
          "payload": JSON.stringify({
            "chat_id": chatId,
            "text": message
          })
        };

        UrlFetchApp.fetch("https://api.telegram.org/bot" + botToken + "/sendMessage", options);
      }
    }
  }
}



Но когда значение становится меньше 100, сообщение не приходит, в чём может быть ошибика?

Nexus 06.03.2024 20:09

qqAndrey, никогда и нигде не публикуйте секретные данные вашего приложения!

Удалите их из кода и смените токен бота.

qqAndrey 07.03.2024 11:09

Данные изменённые, нет советов куда копать и почему код не работает?

Nexus 07.03.2024 15:05

Цитата:

Сообщение от qqAndrey
нет советов куда копать и почему код не работает

Единственное, что я заметил: в опциях, которые вы передаете функции fetch не указан заголовок `content-type` со значение `application/json`, хотя контент вы кодируете именно в json.
Попробуйте добавить это после 24й строки:
'headers': {'content-type': 'application/json'},

Должно получится как-то так:
var options = {
          "method": "post",
          "headers": {"content-type": "application/json"},
          "payload": JSON.stringify({
            "chat_id": chatId,
            "text": message
          })
        };


Если не поможет, то остается только каким-то образом дебажить, как это делается google sheets я не знаю.


Часовой пояс GMT +3, время: 09:50.