Вы можете использовать Свойства службы , которая позволяет хранить строки в виде пар ключ-значение. Идея состояла бы в том, чтобы сохранить значение currentMessage
в свойстве в функции createCard
, а затем использовать его в callAPI
.
- Сначала, чтобы сохранить переменную, вы можете добавить следующие строки
createCard
после объявления currentMessage
:
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty("currentMessage", currentMessage);
- Во-вторых, чтобы извлечь эту переменную, добавьте следующие строки в
callAPI
:
var userProperties = PropertiesService.getUserProperties();
var msg = userProperties.getProperty("currentMessage");
Обновление:
Чтобы избежать ограничения количества символов для одного свойства, вы также можете разбить ваше сообщение на столько свойств, сколько необходимо.
- Сначала необходимо разбить сообщение на массив с помощью substring и сохранить каждый элемент массива в отдельном свойстве. Вы должны добавить это к
createCard
, после объявления currentMessage
:
var messageArray = [];
var i = 0;
var k = 5000; // Character limit for one property (change accordingly)
while (i < currentMessage.length) {
var part = currentMessage.substring(i, i += k);
messageArray.push(part); // Splitting string into an array of strings
}
var userProperties = PropertiesService.getUserProperties();
userProperties.deleteAllProperties(); // Delete old properties
for (var j = 0; j < messageArray.length; j++) { // Set a different property for each element in the array
userProperties.setProperty('messagePart' + j, messageArray[j]);
}
- Затем, чтобы получить тело сообщения, вы можете сначала получить все свойства, соответствующие сообщение, а затем объедините все значения в одну строку с помощью concat . Добавьте следующие строки в
callAPI
:
var userProperties = PropertiesService.getUserProperties();
var keys = userProperties.getKeys(); // Get all property keys
var j = 0;
var currentMessage = "";
do {
var part = userProperties.getProperty('messagePart' + j);
currentMessage = currentMessage.concat(part); // Concat each property value to a single string.
j++;
} while (keys.indexOf('messagePart' + j) !== -1); // Check if property key exists
Ссылка:
Надеюсь, это поможет.