Форум

Еще вариант отправки SMS из Гугл Таблиц

На волне статьи решил свое решение написать.

Google Apps Script представляет собой мощный инструмент для автоматизации задач в Google Workspace. Рассмотрим пример скрипта, который отправляет SMS-сообщения, используя данные из Google Sheets. Этот скрипт полезен для автоматизации отправки сообщений на основе данных, хранящихся в электронных таблицах.

Скрипт состоит из трех функций:
  1. sendSMSFromCell(): считывает данные из ячеек Google Sheets и вызывает функцию отправки SMS.
  2. sendSMS(number, destination, text): отправляет SMS, используя API внешнего сервиса.
  3. testSendSMS(): тестирует отправку SMS, вызывая sendSMSFromCell().
Функция sendSMSFromCell()

Эта функция выполняет следующие задачи:

  1. Получает активный лист Google Sheets.
  2. Считывает сообщение из ячейки A1.
  3. Считывает номер получателя из ячейки B1.
  4. Вызывает функцию sendSMS для отправки сообщения.
Код
function sendSMSFromCell() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var messageCell = sheet.getRange('A1');  // Ячейка для сообщения
  var destinationCell = sheet.getRange('B1');  // Ячейка для номера получателя
  var smsContent = messageCell.getValue();
  var phoneNumber = destinationCell.getValue();
  
  // Убедитесь, что номер телефона и текст сообщения передаются как строки
  sendSMS('номер из exolve', String(phoneNumber), smsContent); // Номер отправителя, номер получателя, текст сообщения
}

Функция sendSMS(number, destination, text)

Эта функция отвечает за отправку SMS с использованием API внешнего сервиса. Она формирует запрос с данными и отправляет его на указанный URL.

Код функции:

Код
function sendSMS(number, destination, text) {
  var apiUrl = 'https://api.exolve.ru/messaging/v1/SendSMS';
  
  var payload = {
    'number': number,       // Номер отправителя
    'destination': destination, // Номер получателя
    'text': text           // Текст сообщения
  };
  
  Logger.log('Payload: ' + JSON.stringify(payload));
  
  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'headers': {
      'Authorization': 'Bearer [ваш токен]' // Замените на ваш токен
    },
    'payload': JSON.stringify(payload),
    'muteHttpExceptions': true  // Чтобы увидеть полный ответ при ошибке
  };
  
  try {
    var response = UrlFetchApp.fetch(apiUrl, options);
    Logger.log('Response code: ' + response.getResponseCode());
    Logger.log('Response body: ' + response.getContentText());
  } catch (error) {
    Logger.log('Error: ' + error.toString());
  }
}

Функция testSendSMS()

Эта функция используется для тестирования процесса отправки SMS. Она вызывает sendSMSFromCell() для выполнения всех действий по отправке сообщения. Это не обязательно вставлять.

Код
function testSendSMS() {
  sendSMSFromCell();
}

Использование скрипта
  1. Настройка Google Sheets: В ячейке A1 введите текст сообщения, в ячейке B1 введите номер телефона получателя.
  2. Запуск скрипта: Выполните функцию testSendSMS() для отправки сообщения.
Для добавления кнопки в Google Sheets, которая будет запускать функцию отправки SMS, необходимо выполнить несколько шагов. Мы уже имеем готовую функцию sendSMSFromCell(), которая считывает данные из ячеек и отправляет SMS.

Создание кнопки:
  • Откройте Google Sheets, где вы хотите добавить кнопку.
  • Вставьте рисунок, который будет служить кнопкой (можно использовать любое изображение или нарисовать кнопку непосредственно в Google Sheets).
  • Щелкните по вставленному рисунку правой кнопкой мыши.
  • Выберите опцию "Назначить сценарий" (Assign script).
  • Введите имя функции, которая будет запускаться при нажатии на кнопку. В нашем случае это sendSMSFromCell.
Теперь кнопка привязана к функции и будет выполнять отправку SMS при нажатии.

kali
kali
25 июля 2024 в 00:12
1
117
Открытая тема
0 баллов

Для того, чтобы оставлять комментарии, необходимо пройти авторизацию

Авторизоваться
Благодарю за публикацию!

Использование Гугл таблиц выходит на новый уровень  :like:  
moderator
moderator
0 баллов
25 июля 2024 в 09:21