Исправим файл saysBirthday.js. Добавим в код библиотеку
googleapis и функцию аутентификации Google.
Используя функцию getAuthClient, создадим клиента для работы с API Google Sheets.
Теперь получим лист нашей таблицы с днями рождения друзей.
Используем метод API
spreadsheets.get — укажем spreadsheetId (берем из URL таблицы с данными) и остальные необходимые параметры.
Теперь получим эти данные из функции saysBirthday, которую бот выполняет при вводе любого текста. В качестве второго аргумента "range" передаем название листа Google-таблицы "Дни рождения".
Запустим и проверим, какие данные появились в консоли:
Можно проверить, что за массив в rowData. Выведем в консоль значения sheet.data[0].rowData:
Посмотрим, что лежит, например, во втором элементе массива — выведем в консоль sheet.data[0].rowData[1].
Отлично, мы выяснили, что в каждом элементе из массива sheet.data[0].rowData в values лежит информация об имени друга и его дне рождения. Давайте научим бота правильно отвечать на основе этой информации.
Напишем функцию, которая ищет соответствие введенного имени друга строке в таблице.
И используем эту функцию в saysBirthday. Найдем день рождения друга в массиве данных sheet.data[0].rowData, исходя из найденного индекса в функции findRowIndex.
Поправим текст, который бот выдает на старте.
Проверяем работу функции.
Еще немного модернизируем код на случай, если имя друга в таблице не будет найдено.
Отлично! Бот работает так, как мы задумали.
Это простейший пример для начала работы с Google Sheets API v4. Разобравшись, какой формат данных возвращает метод spreadsheets.get, попробуйте получить данные с помощью метода spreadsheets.values.get. Он возвращает данные меньшего объема и меньшей вложенности, но вполне подойдёт, если не нужно считывать и записывать данные о форматировании ячеек. Советуем изучить документацию, с помощью которой можно будет реализовывать более сложную логику, переписывать значения ячеек и форматировать их.
Материал предоставлен нашим партнером
HTML Academy.