Интеграция с Google Drive API

Возможности интеграции с Google Drive

Платформа позволяет выполнять следующие операции с Google Drive:

  • загружать файлы
  • делать экспорт файлов в различные форматы
  • добавлять, удалять папки
  • менять права на файлы, папки (расшаривание доступа).
  • получать информацию о файле
  • искать файлы в Google Disk
  • редактировать файлы и просматривать папку через интерфейс

Как настроить интеграцию с Google Drive

  1. Создать проект на Google Drive  WebBrowser (https://developers.google.com/drive/api/v3/quickstart/dotnet) - указываем название приложения. Тип webbrowser, указываем домен. 
  2. Идем в Google API Console / Credentials / Create Credential / Create Service Account. https://console.developers.google.com/apis/credentials?authuser=0&project={projectName}. (Файл credentials.json нам не нужен для работы).
  3. Для проекта на  Api & Services надо сделать Enable API and services и выбрать Google Drive API
  4. Создать сервис аккаунт - указываем имя, роль Project - Owner
  5. Переходим в сервисный аккаунт (вида ХХХХХХХХХХ.iam.gserviceaccount.com), создаем ключ (Manage keys/Create new key) и выбираем формат JSON 
  6. Скачиваем ключ-файл JSON
  7. Положить ключ JSON в /App_data и дать право записи в папку App_data для IIS_USRS
  8. Создать папку на GD и дать права редактирования для сервисного аккаунта ....iam.gserviceaccount.com
  9. Указать в Настройках (/settings) следующие настройки: 
    1. gd-keyFile - путь к файлу ключу JSON, пример: ~/App_Data/[keyname....].json
    2. gd-serviceAccount - сервисный аккаунт, пример: XXXX@YYYYYYY-46079803.iam.gserviceaccount.com
    3. gd-appname - имя приложения, например, falcon

Работа с Google Drive API - выполнение команд

Все действия с Google Drive выполняются через Внешние действия с типом type=gd

В параметре action указывается тип команды.

upload - загрузка файла

Загружает файл и трансформирует по необходимости в Гугл документы. 

Параметры: 

  • filename - имя файла на GD
  • filepath - путь к файлу на диске (если файлы docx, xlsx, xls и doc, то они будут преобразованы в документы Google).
  • folderId - ID папки родителя для файла

delete - удаление файла 

Параметры: 

  • fileId - идентификатор файла

createfolder - создание папки

Параметры: 

  • name - название новой папки
  • folderId - ID папки-родителя

deletefolder - удаление папки

Параметры: 

  • folderId - ID папки
  • case "deletefolder":

search - поиск файлов и папок по запросу

Параметры:

  • q - запрос в специальной форме 
  • pageSize - размер пагинации
  • pageToken - токен пагинации, который управляет какую именно страницу выдать. 
  • fields - какие поля забираем из API (по умолчанию - nextPageToken, files(id, name, mimeType, fileExtension, kind, modifiedTime, parents, size))

Возвращает структуру данных по найденным файлам и папкам.

Подробнее -  https://developers.google.com/drive/api/v3/search-files

getfolder - получение файлов папки 

Параметры

  • folderId - Id папки

Возвращает коллекцию данных о файлах и папках. 

getfile - получение информации о файле

Параметры: 

  • fileId - идентификатор файла

Возвращает структуру данных по файлу (название, тип, когда создан, папки-родители)

copyfile - копирование файла на GD

Параметры: 

  • fileId - id исходного файла, который надо скопировать
  • name - имя создаваемого файла
  • parentFolderId - id папки, куда поместить новый файл. 

Возвращает структуру данных по файлу (название, тип, когда создан, папки-родители)

export - экспортирует существующий файл на GD в некий формат

  • fileId - ID файла на диске
  • exportType - в какой тип экспортировать: pdf, xlsx, docx, html, csv, text (подробнее - https://developers.google.com/drive/api/v3/ref-export-formats)
  • path - файл назначения - куда сохранить на диске (/uploads/1.docx)

getpermissions - посмотреть права на файл

Параметры: 

  • fileId - ID файла или папки на GD

Возвращает коллекцию прав на файл

createpermission - дать права на файл

Параметры:

  • permissionType1, permissionType2, permissionType3 - тип права. Возможные значения: user (права для конкретного пользователя), anyone (для всех пользователей).
  • email1, email2, email3 - email на который даем право.
  • role1, role2, role3 - право доступа.  Возможные значения: owner (владелец файла), reader (может читать), writer (может редактировать), commenter (может комментировать). 

Если не задан один из permissionTypeX, то соответствующее право не добавляется (т.е. в 1 операции можно до 3 прав за 1 запрос). 

deletepermission - удаление права 

Параметры: 

  • fileId - идентификатор файла
  • permissionId - идентификатор права

Примеры: 

-- DELETE FILE
--select 'gd' type, 'delete' action, '1-o_9JNPhI0QZ1Zo8-vccВOkd-KURyNbiVSFassxD1fA' fileId
-- UPLOAD FILE
select 'gd' type, 'upload' action, '5VUpRfJYN8cbOXxQDZXRe6NHYLtRoUURX' folderId, 'Name 1111' filename, '/uploads/doc-templates/act.docx' filepath
-- CREATE FOLDER
select 'gd' type, 'createfolder' action, 'f1' name, '1VUpRfJSN8cbOXxQDZXRq6NHYLtRoUURX' folderId
-- EXPORT PDF
select 'gd' type, 'export' action, '1JaeBwhGQCD8XIyQDDfqcyyMkzFK0kU5GtWnHEppmIKA' fileId, 'pdf' exportType, '/uploads/e1.pdf' path

Редактирование файла Google Disk на сайте

Используем такой сниппет: 

<div class="as-gd" data-fileid="11BVqjf88S8-VDQVuzKcamk9H06mXhyIdOBUP61i6TR4"></div>

Внедряется iframe с редактированием этого файла.

Параметры:

  • data-fileID - id файла на GD.
  • data-type - document (если это документ типа Word) или spreadsheet (если это таблица типа Excel)
  • data-height - устанавливает высоту для выводимого frame (по умолчанию 650). 
  • data-view - можно указать minimal для более компактного вывода

Просмотр папки Google Disk на сайте

Используем сниппет: 

<div class="as-gd" data-folderid="1sxSsGi7ED2EIoT3SZOkLFwxbU8hYByio" data-view="list"></div>

Параметры:

  • data-folderID - id каталога на GD.
  • data-height - устанавливает высоту для выводимого frame (по умолчанию 650). 
  • data-view - вид вывода списка (grid, list)

Как получить прямую ссылку картинки с Google Drive

Допустим, у вас есть картинка на GD. Чтобы получить прямую ссылку на файл подставьте свой fileId в следующую ссылку: 

  • https://lh3.googleusercontent.com/d/{fileID}=w800-h600-no - большая картинка
  • https://lh3.googleusercontent.com/d/{fileID}=s220 - малая картинка

Примеры:

https://lh3.googleusercontent.com/d/199q2vnTb_30Cm9A8YxrB96z-CqdJCnpV=w800-h600-no

https://lh3.googleusercontent.com/d/199q2vnTb_30Cm9A8YxrB96z-CqdJCnpV=s220

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Сайт использует Cookie. Правила конфиденциальности OK