Интеграция с 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

Это снижение стоимости владения

за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом

Это быстрое внесение изменений

по ходу эксплуатации программы. Как создается функционал на платформе

Это простой удобный интерфейс

адаптация под мобильные устройства. Про юзабилити платформы

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