Volond Apps
220 subscribers
216 photos
28 videos
22 files
994 links
Программирование для души и от лени
Добро пожаловать! У нас есть отличное сообщество любителей Excel и VBA, Google Sheet и Google Apps Script, а также всех тех, кто готов работать с этим программным обеспечением. Присоединяйтесь к нам, чтобы задавать и от
Download Telegram
Forwarded from Alexander Ivanov
Возможно, что-то вроде
function controlCallSimpleService(){

var webAppUrl ='https://script.google.com/a/DOMAIN/macros/s/id123123123/exec';

var token = ScriptApp.getOAuthToken();

var options = {
'method' : 'post'
, 'headers': {'Authorization': 'Bearer '+ token}
, muteHttpExceptions: true
};

var response = UrlFetchApp.fetch(webAppUrl, options);
console.log(response.getContentText());
}
Forwarded from Александр
Образцы шаблонов даты и времени
Источник:
Google Forms использует шаблоны даты и времени Oracle для форматирования и анализа дат. Вот несколько примеров форматов и соответствующие выходные данные, которые будут отображаться в сообщениях электронной почты.

═══════════════════════════════
Date and Time Patter |Formatted Text Output
═══════════════════════════════
yyyy-MM-dd hh:mm |2020-11-19 11:34 PM
═══════════════════════════════
yyyy-MMM-d HH:mm:ss |2020-Nov-19 23:34:49
═══════════════════════════════
MMMMM dd, yyyy |November 19, 2020
════════════════════════════════
EEE, d MMM yyyy |Thu, 19 Nov 2020
═══════════════════════════════
EEEEE, d MMM yyyy |Thursday, 19 Nov 2020
════════════════════════════════
yyyy/MM/dd HH:mm:ss | 2020/11/19 23:34:49
════════════════════════════════
••••••••••
Обсудить
Forwarded from Юрий
Кстати, может кому-то будет полезно, 2GIS ввел API в тестовом режиме, кто хочет может попробовать, правда мне до сих пор ответа с ключом доступа так и не прислали (прошло больше суток)
https://dev.2gis.ru/
Тестируем триггеры
/**
* Test function for onEdit. Passes an event object to simulate an edit to
* a cell in a spreadsheet.
*
* Check for updates: https://stackoverflow.com/a/16089067/1677912
*
* See https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events
*/
function test_onEdit() {
onEdit({
user : Session.getActiveUser().getEmail(),
source : SpreadsheetApp.getActiveSpreadsheet(),
range : SpreadsheetApp.getActiveSpreadsheet().getActiveCell(),
value : SpreadsheetApp.getActiveSpreadsheet().getActiveCell().getValue(),
authMode : "LIMITED"
});
}

/**
* Test function for Spreadsheet Form Submit trigger functions.
* Loops through content of sheet, creating simulated Form Submit Events.
*
* Check for updates: https://stackoverflow.com/a/16089067/1677912
*
* See https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events
*/

function test_onFormSubmit() {
var dataRange = SpreadsheetApp.getActiveSheet().getDataRange();
var data = dataRange.getValues();
var headers = data[0];
// Start at row 1, skipping headers in row 0
for (var row=1; row < data.length; row++) {
var e = {};
e.values = data[row].filter(Boolean); // filter: https://stackoverflow.com/a/19888749
e.range = dataRange.offset(row,0,1,data[0].length);
e.namedValues = {};
// Loop through headers to create namedValues object
// NOTE: all namedValues are arrays.
for (var col=0; col<headers.length; col++) {
e.namedValues[headers[col]] = [data[row][col]];
}
// Pass the simulated event to onFormSubmit
onFormSubmit(e);
}
}

Подсказки
При моделировании событий старайтесь как можно точнее сопоставить задокументированные объекты событий.

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

Logger.log( JSON.stringify( e , null, 2 ) );

В событиях отправки формы электронной таблицы:
все значения namedValues ​​являются массивами.
Метки времени - это строки, и их формат будет локализован в соответствии с локалью формы. При чтении из электронной таблицы с форматированием по умолчанию * они являются объектами Date. Если ваша функция триггера полагается на строковый формат отметки времени (что является плохой идеей), убедитесь, что вы правильно моделируете значение.
Если в вашей электронной таблице есть столбцы, которых нет в вашей форме, метод в этом сценарии будет имитировать «событие» с включенными этими дополнительными значениями, а это не то, что вы получите при отправке формы. < / li>
Как указано в проблеме 4335 , массив values пропускает пустые ответы (в «новых формах» + «новых таблицах»). Для моделирования этого поведения используется метод filter(Boolean).

Обновление 2017 г .: Отлаживайте объекты событий с помощью Stackdriver Logging для скрипта Google Apps. В строке меню редактора скриптов перейдите к: View > Stackdriver Logging для просмотра или потоковой передачи журналов.

console.log () будет писать сообщения уровня DEBUG

function onEdit (e) {
var debug_e = {
authMode: e.authMode,
range: e.range.getA1Notation(),
source: e.source.getId(),
user: e.user,
value: e.value,
oldValue: e. oldValue
}

console.log({message: 'onEdit() Event Object', eventObject: debug_e});
}

function onFormSubmit (e) {
var debug_e = {
authMode: e.authMode,
namedValues: e.namedValues,
range: e.range.getA1Notation(),
value: e.value
}

console.log({message: 'onFormSubmit() Event Object', eventObject: debug_e});
}


function onChange (e) {
var debug_e = {
authMode: e.authMode,
changeType: changeType,
user: e.user
}

console.log({message: 'onChange() Event Object', eventObject: debug_e});
}

Затем проверьте журналы в Stackdriver UI, помеченном как строка message, чтобы увидеть выход

Источник:
Forwarded from Рестарт
This media is not supported in your browser
VIEW IN TELEGRAM
CodeSee — сервис для визуализации кода

Это автоматически генерируемые, самообновляющиеся диаграммы кода. Они синхронизируют вашу кодовую базу по мере развития кода.

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

CodeSee может отображать файлы и папки для любого языка с возможностью визуализировать зависимости между кодовыми базами Go, Java, JavaScript, Python и TypeScript.

GIT #программирование
Live stream started
Live stream finished (13 minutes)
Live stream started
=index({"Янв"\"Февр"};1;MONTH(G2))
Forwarded from volond
Forwarded from DidacticСardsBot
Calling a Google App Script library from a Google spreadsheet cell

Источник:



function LIB_FUNC(libraryName, functionName) {
var result;
var lib = this[libraryName];
var extraArgs = [];

if (lib) {
var func = lib[functionName];

if (func) {
if (arguments.length > 2) {
extraArgs = Array.apply(null, arguments).slice(2);
}

result = func.apply(this, extraArgs);
} else {
throw "No such function: " + functionName;
}
} else {
throw "No such library: " + libraryName;
}

return result;
}


For example, if I had a library called MyLib with a function add(x, y) (pretend x is in cell A1 and y is in cell A2) I could call it like this: =LIB_FUNC("MyLib", "add", A1, A2).

••••••••••
Обсудить: