Здравствуйте Ученики!
Эта статья продолжает мою предыдущую статью Как создать веб-API, который извлекает данные JSON из электронной таблицы Google с помощью скрипта Google Apps» и показывает, как получить данные JSON из электронной таблицы Google с помощью Google Apps. Скрипт на основе некоторых параметров. Параметры могут включать такие вещи, как идентификатор электронной почты, идентификатор ключа, имя или что-либо еще, что можно использовать для поиска строк в вашей электронной таблице Google. Давайте узнаем, как это работает.
Следующие шаги помогут нам в этом процессе:
Шаг 1.Откройте редактор скриптов Google Apps и напишите следующую функцию doGet().
var email; var sheetname; function doGet(event) { sheetname = event.parameter['sheetname']; email = event.parameter['email']; var data = getJsonData(sheetname, email); return buildSuccessResponse(data, 1); }
email и имя листа объявлены как глобальные переменные в приведенном выше коде. Переменная event передается в функцию doGet(); это переменная, из которой мы получим параметры и их значения, которые были переданы в URL-адрес веб-API из внешнего интерфейса (позже мы увидим, как получить URL-адрес веб-API). В приведенном выше примере кода видно, что переменная event имеет два параметра: имя листа и адрес электронной почты. Эти параметры получаются с помощью атрибутов parameter. Атрибут параметра можно использовать, поместив точку (.) после переменной event и определив ключевую строку в квадратных скобках [ ]. См. пример кода ниже.
event.parameter['sheetname'];
Теперь у нас есть параметры URL-адреса веб-API и их значения. Мы передадим их функции getJsonData(), после чего объявим идентификатор электронной таблицы Google и имя листа, из которого мы будем извлекать данные.
Как и в примере кода ниже, мы видим, как параметры могут быть переданы в функцию getJsonData().
getJsonData(sheetname, email);
Шаг 2.В рамках этого шага мы создадим скрипт Google Apps для функции getJsonData() и определим идентификатор электронной таблицы и имя электронной таблицы. Пожалуйста, обратитесь к приведенному ниже примеру кода.
function getJsonData(sheetname, email){ var spreadSheetId='YOUR_SPREADSHEET_ID'; var ss = SpreadsheetApp.openById(spreadSheetId); var sheet = ss.getSheetByName("YOUR_SHEETNAME"); var json_data = getData(sheetname, email); return json_data; }
В приведенном выше примере кода мы определили идентификатор электронной таблицы Google и имя, из которого мы будем получать данные. Порядок, в котором должна работать электронная таблица: сначала нам нужно написать идентификатор электронной таблицы, затем применить библиотечную функцию SpreadsheetApp, а затем openbyId. > чтобы получить доступ к электронной таблице, а затем написать имя таблицы, из которой мы получаем данные.
Затем мы вызвали функцию getData() и передали параметры sheetname и email для получения данных на основе условий в формате JSON.
Шаг 3.На этом шаге мы напишем код для функции getData() с параметризованными условиями. Эта функция будет иметь код, связанный со строкой данных, которые мы получаем из электронной таблицы. Давайте посмотрим на код ниже.
function getData(sheet){ var jo = {}; var i =0; var rows2 = sheet.getDataRange().getValues(); Logger.clear(); // ===============Get data================= var rows2=[]; var rangeData = sheet.getDataRange(); var values = rangeData.getValues(); var lastColumn = rangeData.getLastColumn(); var lastRow = rangeData.getLastRow(); var data=[]; var x=0,y=0; for(i = 0; i<lastRow; i++){ data[x]=[]; for(var j=0; j<lastColumn; j++ ){ // Here we are matching values with eamil parameter // values[i][2] will have data of emails in second column of your // spreadsheet if(email == values[i][2]){ data[x][j]= values[i][j]; y=1; } } if(y==1){ x=x+1; y=0; } } return data; }
В объявленной выше функции мы использовали несколько библиотечных функций. См. определение ниже:
getDataRange(): чтобы получить диапазон электронной таблицы, в которой есть данные.
getValues(): чтобы получить значения выбранного диапазона в электронной таблице.
getLastColumn(): чтобы получить последний столбец электронной таблицы.
getLastRow(): для получения последней строки электронной таблицы.
Затем параметр email использовался для фильтрации данных на основе того же значения электронной почты. Мы использовали value[i][2], так как оно определяет второй столбец вашей электронной таблицы, который будет содержать ваши электронные письма.
Шаг 4.На этом шаге нам просто нужно определить функцию buildSuccessResponse(), которая была объявлена ранее в функции doGet() в вверху примера кода.
function buildSuccessResponse(data, pages) { var output = JSON.stringify({ status: 'success', data: data, pages: pages }); return ContentService.createTextOutput(output).setMimeType(ContentService.MimeType.JSON); }
В приведенном выше коде мы передаем весь массив, полученный из функции getJsonData(). Поскольку stringnify — это процесс получения данных массива в формате JSON, мы также можем передать некоторые параметры, такие как значение успеха, если данные были успешно отправлены в веб-API, а также другие параметры.
Шаг 5. Мы подошли к концу процесса создания API. Все, что вам нужно сделать, это развернуть весь этот код как веб-API, используя правую верхнюю опцию в редакторе сценариев Google под названием "Развернуть". Как только вы это сделаете, вы увидите URL-адрес веб-API следующим образом:
https://script.google.com/macros/s/AKfycbyS6P2P2TUGBfqmFTrTfourZK97fB5JnVxyWTz32St8y1UwgdaYYK6jBIq1JqR1qpsi/exec
Приведенный выше видимый URL-адрес предназначен только для демонстрационных целей и не является рабочим URL-адресом. В этом URL-адресе вам нужно передать те параметры — имя листа и адрес электронной почты, — которые мы получили от функции doGet(). Теперь давайте посмотрим, как его можно использовать с URL-адресами веб-API.
https://script.google.com/macros/s/AKfycbyS6P2P2TUGBfqmFTrTfourZK97fB5JnVxyWTz32St8y1UwgdaYYK6jBIq1JqR1qpsi/exec?sheetname=YOUR_SHEETNAME&email=YOUR_EMAIL_VALUE
Выше вы можете видеть, что мы добавили ?sheetname=YOUR_SHEETNAME&email=YOUR_EMAIL_VALUE,после URL-адреса, чтобы включить параметры с URL-адресом веб-API, и мы можем добавить больше, добавив оператор & .
Если вы хотите изучить скрипт Google Apps и автоматизировать Google Workspace? обязательно попробуйте эту электронную книгу на тему Скрипт Google Apps: руководство для начинающих».
Я надеюсь, что прочитав эту статью, вы сможете создать свой собственный веб-API, чтобы получать данные из электронной таблицы Google на свои веб-страницы на основе параметров.
Пожалуйста, оставьте комментарий, если у вас есть какие-либо вопросы. Я буду рад помочь.
Счастливого обучения!