Работа в Google таблицах с Apps Script

Germango

Client
Регистрация
30.07.2013
Сообщения
65
Благодарностей
76
Баллы
18

Замените "КЛЮЧ" на произвольный.
C#:
const apiKey = "КЛЮЧ";

function doPost(e) {
  if (e.parameter.key !== apiKey) {
    return ContentService.createTextOutput("Unauthorized").setMimeType(ContentService.MimeType.TEXT);
  }

  if (!e.postData.contents) {
    throw new Error("Нет данных для обработки.");
  }

  const data = JSON.parse(e.postData.contents);
  const row = data.row || 1;
  const col = data.col || 1;
  const value = data.value || "";

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange(row, col).setValue(value);

  return ContentService.createTextOutput("Success");
}

function doGet(e) {
  if (e.parameter.key !== apiKey) {
    return ContentService.createTextOutput("Unauthorized").setMimeType(ContentService.MimeType.TEXT);
  }

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  if (e.parameter.search) {
    const searchText = e.parameter.search;
    const data = sheet.getDataRange().getValues();

    for (let i = 0; i < data.length; i++) {
      if (data[i].includes(searchText)) {
        return ContentService.createTextOutput(JSON.stringify({ found: "yes", row: i + 1 }));
      }
    }
    return ContentService.createTextOutput(JSON.stringify({ found: "no" }));
  } else if (e.parameter.row && e.parameter.col) {
    const row = parseInt(e.parameter.row, 10);
    const col = parseInt(e.parameter.col, 10);
    const value = sheet.getRange(row, col).getValue();
    return ContentService.createTextOutput(value);
  } else if (e.parameter.action === "get_row_count") {
    const rowCount = sheet.getLastRow();
    return ContentService.createTextOutput(rowCount.toString());
  } else {
    return ContentService.createTextOutput("Некорректный запрос.");
  }
}

Шаги:

1. Создание Таблицы - открываем Google Drive и создаем новую Таблицу.

2. Настройка Apps Script
  • В меню «Расширения» выбираем «Apps Script».
  • Добавляем код (выше) для работы со скриптом и создаем уникальный ключ доступа.
  • Выполняем развертывание как веб-приложение, разрешаем доступ для всех пользователей.
3. Интеграция с проектом
  • Копируем полученную ссылку на веб-приложение и ваш ключ
  • Добавляем их в настройки проекта.
4. Запуск и проверка
  • Запускаем программу
  • Проверяем, что новые строки добавляются корректно.
Готово! Теперь данные записываются в таблицу. Удачи в проектах!
 

Вложения

Последнее редактирование модератором:

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 874
Благодарностей
2 588
Баллы
113
Правильно ли я понимаю, что преимущество использования Apps Script в том, что на нем можно просто поднимать WebHook фактически бесплатно?
Видел в интернете что люди умудряются даже как-то телеграм ботов делать с его помощью...
Спасибо за статью!
 

Germango

Client
Регистрация
30.07.2013
Сообщения
65
Благодарностей
76
Баллы
18
Правильно ли я понимаю, что преимущество использования Apps Script в том, что на нем можно просто поднимать WebHook фактически бесплатно?
Так и есть, только не ручаюсь что это лучшее решение, возможно есть более удобные варианты. А так, да - единственная затрата это google профиль.
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 874
Благодарностей
2 588
Баллы
113
Так и есть, только не ручаюсь что это лучшее решение, возможно есть более удобные варианты. А так, да - единственная затрата это google профиль.
А часто профили гугла умирают, если использовать скажем так "на полную", не подскажете?
 

Germango

Client
Регистрация
30.07.2013
Сообщения
65
Благодарностей
76
Баллы
18
А часто профили гугла умирают, если использовать скажем так "на полную", не подскажете?
Стресс-тест не проводил, но за время пользования (2 недели) всё осталось на местах, ничего не отлетало. Профиля живы. Единственное что - в редких случаях запросы могут не отвечать по таймауту, для этого в шаб добавлен простой обработчик подобного на повторную отправку запроса.
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 874
Благодарностей
2 588
Баллы
113
Единственное что - в редких случаях запросы могут не отвечать по таймауту, для этого в шаб добавлен простой обработчик подобного на повторную отправку запроса.
Да, с запросами везде бывает так работать нужно - запросы в любой момент могут не доходить по разным причинам.
В целом, круто что аккаунты не умирают от использования (мне казалось что гугл более жесткий в этом плане).
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)