Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Сервисный аккаунт нужен для доступа AutoFAQ к таблицам Google Sheets. Одного аккаунта достаточно для всех таблиц. При необходимости отключить доступ AutoFAQ ко всем таблицам просто отключите сервисный аккаунт.

  1. Перейдите в меню сервисных аккаунтов Google https://console.cloud.google.com/iam-admin/serviceaccounts

  2. Создайте новый проект или выберите готовый проект

...

3. Создайте в выбранном проекте сервисный аккаунт или выберите существующий сервисный аккаунт. При создании нового аккаунта достаточно выполнить шаг 1, редактировать доступы к проектам не обязательно. Сохраните имя сервисного аккаунта - оно понадобится позднее.

...

3. У созданного сервисного аккаунта создайте ключ в формате JSON. ВНИМАНИЕ, сразу после создания ключа вам будет предложено сохранить файл - сохраните его в надежном месте. Если вы пропустили сохранение файла - удалите созданный ключ и сделайте новый, сохранив файл.

...

Подключение к Google Sheets

Подключение Google Sheets к проекту

  1. Пройдите по ссылке https://console.cloud.google.com/apis/library/sheets.googleapis.com

2. Выберите ваш проект и включите доступ проекта в Google Sheets API

...

3. Включите доступ для сервисной учетной записи

...

Доступ сервисного аккаунта к выбранной таблице

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

2. Добавьте созданный сервисный аккаунт в качестве редактора таблицы

...

3. Сохраните идентификатор таблицы Google Sheets

...

Подключение интеграции с Google к AutoFAQ

К сожалению, UI интеграции c Google еще в работе. Свяжитесь с нами по почте support@autofaq.ai для подключения вашего сценария опроса к Google Sheets.

Пример сценария c сохранением даных в таблице Google Sheets

Ниже приведен пример сценария опроса пользователя и сохранения результатов опроса в таблицу Google Sheets.

Expand
titleРазверните чтобы открыть текст сценария
Code Block
languagepy
//
// Сценарий опроса пользователя и сохранения результатов в таблице Google Sheet
// 
// Указать наименование сервисного аккаунта
установитьПеременную("email", "autofaqaccount@autofaqproject.iam.gserviceaccount.com") +
// Указать идентификатор таблицы Google Sheet
установитьПеременную("sheetId", "18ItMIY6-epFpT1yoYuP2NyE2jRND8V-uxR2XTUd2tC8")+
// Указать название листа в таблице Google Sheet 
установитьПеременную("sheetName", "Sheet1")+
//
// Опрос пользователя
задатьПользователюВопрос("Как вас зовут").сохранитьРезультат("sendFio") +
задатьПользователюВопрос("Кем вы работаете").сохранитьРезультат("sendOtdel") +
задатьПользователюВопрос("Сколько вам лет").сохранитьРезультат("sendAge") +
задатьПользователюВопрос("Уточните, пожалуйста, что для Вас является приоритетным?").сВариантамиОтвета("Получение максимальной суммы","Простота получения").сохранитьРезультат("sendPriority")+
задатьПользователюВопрос("Укажите, на какие цели предназначается займ?").сохранитьРезультат("sendGoal")+
//
// Формирование тела запроса на добавление 1 строки в конец таблицы, количество столбцов - не более 25
выполнитьJs("""
    // Дата добавления
    var sendDate = new Date();
    
    // Список добавляемых значений
    var addValues = [sendDate, userLogin, sendFio, sendOtdel, sendAge, sendPriority, sendGoal];
    
    // Расчет необходимого числа колонок
    var sheetsNames = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','R','S','T','U','V','W','X','Y','Z'];
    var sheetEnd = sheetsNames[addValues.length];

    // Формирование тела запроса
    var requestBody = {"range": sheetName+"!A1:"+sheetEnd+"1", "majorDimension": "ROWS", "values":[addValues,]};

    var exit = {'requestBodyJSON':JSON.stringify(requestBody), 'sheetEnd':sheetEnd};
exit;
""") +
//
// Получение временного токена для работы с гугл таблицей 
вызвать.внешнийСервис("https://denisk.autofaq.ai/gtoken","GET").сЗаголовками(("Content-Type", "application/json"),("charset", "utf-8")).сПараметрами(("email","{email}")).сохранитьРезультат(("message","message"),("token","token"),("status","status"))+
если("{http_code} > 210").то(
    комментарий("Сценарий не смог получить токен для работы с таблицей. Код {http_code}")+
    сообщениеПользователю.сШаблоном("Спасибо за участие, но что-то сломалось и я не смог сохранить результаты.")+    
    завершить
)+
если("{status} == error").то(
    комментарий("Сценарий не смог получить токен для работы с таблицей. {message}")+
    сообщениеПользователю.сШаблоном("Спасибо за опрос, но что-то сломалось и я не смог сохранить результаты.")+    
    завершить
)+
//
// Отправка данных в гугл таблицу
вызвать.внешнийСервис("https://sheets.googleapis.com/v4/spreadsheets/{sheetId}/values/{sheetName}!A1:{sheetEnd}1:append","POST").сПараметрами(("valueInputOption","USER_ENTERED")).сЗаголовками(("Authorization", "Bearer {token}"),("Content-Type","application/json")).сТеломСообщения("{requestBodyJSON}").сохранитьРезультатКакСтроку("result")+
если("{http_code} > 210").то(
    комментарий("Сценарий не смог отправить запрос на добавление строчки в гугл таблице. Код {http_code}, ответ {result}")+
    сообщениеПользователю.сШаблоном("Спасибо за участие, но что-то сломалось и я не могу связаться с центром.")+    
    завершить
)+
// Финальные отбивки и завершение сценария
комментарий("Добавил строчку в гугл таблицу.")+
сообщениеПользователю.сШаблоном("Все записал. Большое спасибо за участие!")+
завершить

Подключение к Gmail

  1. Пройдите по ссылке http://console.cloud.google.com/apis/library/gmail.googleapis.com

  2. Выберите ваш проект и включите доступ проекта в Google Sheets API

...