Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.07.2024, 12:41
Аспирант
Отправить личное сообщение для Aidec Посмотреть профиль Найти все сообщения от Aidec
 
Регистрация: 07.12.2022
Сообщений: 88

Помогите с Google script, telegramm bot
С помощью функции

function sendInProgressRows(chatId, data) {
  var message = '';
  var rowNumber = 1; // Номер строки для нумерации
   for (var i = 0; i < data.length; i++) {
    for (var j = 0; j < data[i].length; j++) {
      if (data[i][j].toString().indexOf('В работе') !== -1) { // Проверяем, есть ли текст "В работе" в ячейке
      Logger.log('Data[i]: ' + JSON.stringify(data[i])); // Логирование data[i]
       Logger.log('Parts: ' + JSON.stringify(parts)); // Логирование parts
      var parts = data[i].join(' ').split(' ');
      // Извлекаем дату и время
      var date = parts[1] + ' ' + parts[2] + ' ' + parts[3];
      var names = parts[9];
      var ks = parts[10];
      var objs = parts[11];
      var car = parts[12];
       Logger.log('File ID: ' + car); // Добавляем логирование file_id
      var status1 = parts[13];
      var status2 = parts[14];
      var now = parts[4];
      // Преобразуем дату в нужный формат
      var formattedDate = new Date(date).toLocaleDateString('ru-RU', { day: '2-digit', month: '2-digit', year: 'numeric'});
      // Собираем строку с форматированной датой
      message += rowNumber + '. ✉️ ' + formattedDate + ' - ' + now + "\n" + '     ???? ' + names + "\n" + '     ✏️ KC № ' + ks + "\n" + '           Объект: '+ objs + "\n" + '           Схема: ' + car + "\n" + '     ???? ' + status1 + ' ' + status2 + "\n" + '____________________________' + "\n" + "\n"; 


// Извлекаем file_id из ссылки
        var fileId = car.split('/').pop(); // Получаем последний элемент массива, разделенного '/'
        Logger.log('File ID: ' + fileId); // Добавляем логирование file_id
      //   Получаем ссылку на файл с помощью getFile
        var fileUrl = getFileUrl(fileId);

        // Отправляем файл с помощью sendDocument
        sendDocument(chatId, fileUrl); // Указываем ссылку на фото



        rowNumber++; // Увеличиваем номер строки
        break; // Переходим к следующей строке
      }
    }
  }

  sendMessage(chatId, message);

  // Логируем текущее время в формате GMT
  var currentGMTDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'");
  Logger.log('Current GMT Date: ' + currentGMTDate);
}


function getFileUrl(fileId) {
  var url = `https://api.telegram.org/bot${telegramToken}/getFile?file_id=${fileId}`;
  Logger.log('getFile URL: ' + url); // Добавляем логирование URL
  //var response = UrlFetchApp.fetch(url);
  var response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
  var data = JSON.parse(response.getContentText());
  return `https://api.telegram.org/file/bot${telegramToken}/${data.result.file_path}`;
}

function sendDocument(chatId, fileUrl) {
  var url = 'https://api.telegram.org/bot' + telegramToken + '/sendDocument';
  var payload = {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify({
      chat_id: chatId,
      document: fileUrl,
      caption: 'Схема' // Например, "Схема"
    })
  };
  UrlFetchApp.fetch(url, payload);
}


С помощью этого кода я получаю от бота сообщения с данными из таблицы гугл, так же я получаю ссылку на фото, но хотел бы получать не ссылку а как файл, вроде все сделал как надо но ничего не получилось, даже в переменную указал прямую ссылку на фото

var car = 'https://api.telegram.org/file/bot7048548792:AAFzCXt2oFZzIOkpzthtR0B92owpUoF-KOk/photos/file_43.jpg';


но и так ничего не получилось.



Помогите пожалуйста с кодом

Последний раз редактировалось Aidec, 21.07.2024 в 14:28.
Ответить с цитированием
  #2 (permalink)  
Старый 21.07.2024, 16:50
Аспирант
Отправить личное сообщение для Aidec Посмотреть профиль Найти все сообщения от Aidec
 
Регистрация: 07.12.2022
Сообщений: 88

ссылку на фото я получаю этой функцией
function getImageUrl(photoId) {
  var url = `https://api.telegram.org/bot${telegramToken}/getFile?file_id=${photoId}`;
  var response = UrlFetchApp.fetch(url);
  var data = JSON.parse(response.getContentText());
  return `https://api.telegram.org/file/bot${telegramToken}/${data.result.file_path}`;
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Google Apps Script (напишите скрипт) Программирование Работа 0 04.04.2018 21:13
Google Script изменение ячейки fenix_63 Общие вопросы Javascript 0 19.02.2016 15:06
MathJax с помощью Google Script vladb314 Общие вопросы Javascript 0 22.01.2016 17:54
Вопрос к знатокам google apps script gtr-kaz Общие вопросы Javascript 3 22.10.2014 08:31
Нужен скрипт для работы через Google Script (Spreadsheets) Satmax Работа 0 13.08.2014 16:55