Реализовать запуск get-метода из гугл-таблицы
Цена договорная
У нас есть гугл-таблица и когда в определенном поле меняется значение на начинаю, нужно вызывать api-метод, в котором переменные встают из столбцов.
Нужно даты преобразовать из обычных дат в unix.
Пример таблицы прилагаю:
https://docs.google.com/spreadsheets/d/10Py-Vky-BN4QtW1JMxP4CcEttSxEFE5AUv9WkkNVjSc/edit?usp=sharing
Пример ссылки прилагаю:
https://318c-138-124-93-23.ngrok-free.app/api/v1/tasks/client/newhardtask?token=246be7d0-d4ba-11ef-9073-0242ac130005&title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C%20%D0%B1%D0%BE%D1%82%D0%B0&description=%D0%A2%D0%B5%D1%81%D1%82&tags=python,%20aiogram&budget_from=10&budget_to=100&deadline=2&reminds=5
Оставляйте свой телеграм для связи и оценку такой задачи.
Вот обновленный код с комментариями, в которых указано, какие значения хранятся в каких столбцах:
function onEdit(e) {
const sheet = e.source.getActiveSheet();
const range = e.range;
// Определяем столбцы:
const triggerColumn = 1; // Столбец A (1-й) - здесь нужно менять значение на "да"
const statusColumn = 2; // Столбец B (2-й) - сюда будет записан статус ответа
const responseColumn = 3; // Столбец C (3-й) - сюда будет записан текст ответа
const param1Column = 4; // Столбец D (4-й) - здесь находится значение первого параметра
const param2Column = 5; // Столбец E (5-й) - здесь находится значение второго параметра
// Проверяем, изменился ли нужный столбец и новое значение равно "да"
if (range.getColumn() === triggerColumn && e.value === "да") {
// Получаем значения из столбцов D и E
const param1 = encodeURIComponent(sheet.getRange(range.getRow(), param1Column).getValue()); // Столбец D
const param2 = encodeURIComponent(sheet.getRange(range.getRow(), param2Column).getValue()); // Столбец E
const url = `https://example.com/api?param1=${param1}¶m2=${param2}`; // Укажите URL вашего API
try {
// Выполняем GET-запрос к API
const response = UrlFetchApp.fetch(url);
const httpStatus = response.getResponseCode(); // Получаем код ответа
const responseBody = response.getContentText(); // Получаем текст ответа
// Записываем результат в столбцы
sheet.getRange(range.getRow(), statusColumn).setValue(httpStatus); // Записываем статус в столбец B
sheet.getRange(range.getRow(), responseColumn).setValue(responseBody); // Записываем ответ в столбец C
} catch (error) {
Logger.log('Ошибка: ' + error);
sheet.getRange(range.getRow(), statusColumn).setValue('Ошибка'); // Записываем "Ошибка" в столбец B
sheet.getRange(range.getRow(), responseColumn).setValue(error.toString()); // Записываем текст ошибки в столбец C
}
}
}
Объяснение столбцов:
- Столбец A (1-й): Замените значение на "да", чтобы инициализировать скрипт.
- Столбец B (2-й): Здесь будет записан код статуса ответа от API.
- Столбец C (3-й): Здесь будет записан текст ответа от API.
- Столбец D (4-й): Здесь находится значение первого параметра, который будет передан в API.
- Столбец E (5-й): Здесь находится значение второго параметра, который будет передан в API.
Не забудьте заменить https://example.com/api на ваш настоящий API-URL.
Нужно даты преобразовать из обычных дат в unix.
Пример таблицы прилагаю:
https://docs.google.com/spreadsheets/d/10Py-Vky-BN4QtW1JMxP4CcEttSxEFE5AUv9WkkNVjSc/edit?usp=sharing
Пример ссылки прилагаю:
https://318c-138-124-93-23.ngrok-free.app/api/v1/tasks/client/newhardtask?token=246be7d0-d4ba-11ef-9073-0242ac130005&title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C%20%D0%B1%D0%BE%D1%82%D0%B0&description=%D0%A2%D0%B5%D1%81%D1%82&tags=python,%20aiogram&budget_from=10&budget_to=100&deadline=2&reminds=5
Оставляйте свой телеграм для связи и оценку такой задачи.
Вот обновленный код с комментариями, в которых указано, какие значения хранятся в каких столбцах:
function onEdit(e) {
const sheet = e.source.getActiveSheet();
const range = e.range;
// Определяем столбцы:
const triggerColumn = 1; // Столбец A (1-й) - здесь нужно менять значение на "да"
const statusColumn = 2; // Столбец B (2-й) - сюда будет записан статус ответа
const responseColumn = 3; // Столбец C (3-й) - сюда будет записан текст ответа
const param1Column = 4; // Столбец D (4-й) - здесь находится значение первого параметра
const param2Column = 5; // Столбец E (5-й) - здесь находится значение второго параметра
// Проверяем, изменился ли нужный столбец и новое значение равно "да"
if (range.getColumn() === triggerColumn && e.value === "да") {
// Получаем значения из столбцов D и E
const param1 = encodeURIComponent(sheet.getRange(range.getRow(), param1Column).getValue()); // Столбец D
const param2 = encodeURIComponent(sheet.getRange(range.getRow(), param2Column).getValue()); // Столбец E
const url = `https://example.com/api?param1=${param1}¶m2=${param2}`; // Укажите URL вашего API
try {
// Выполняем GET-запрос к API
const response = UrlFetchApp.fetch(url);
const httpStatus = response.getResponseCode(); // Получаем код ответа
const responseBody = response.getContentText(); // Получаем текст ответа
// Записываем результат в столбцы
sheet.getRange(range.getRow(), statusColumn).setValue(httpStatus); // Записываем статус в столбец B
sheet.getRange(range.getRow(), responseColumn).setValue(responseBody); // Записываем ответ в столбец C
} catch (error) {
Logger.log('Ошибка: ' + error);
sheet.getRange(range.getRow(), statusColumn).setValue('Ошибка'); // Записываем "Ошибка" в столбец B
sheet.getRange(range.getRow(), responseColumn).setValue(error.toString()); // Записываем текст ошибки в столбец C
}
}
}
Объяснение столбцов:
- Столбец A (1-й): Замените значение на "да", чтобы инициализировать скрипт.
- Столбец B (2-й): Здесь будет записан код статуса ответа от API.
- Столбец C (3-й): Здесь будет записан текст ответа от API.
- Столбец D (4-й): Здесь находится значение первого параметра, который будет передан в API.
- Столбец E (5-й): Здесь находится значение второго параметра, который будет передан в API.
Не забудьте заменить https://example.com/api на ваш настоящий API-URL.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.