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

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

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

Как настроить интеграцию с 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 - загрузка файла

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

Параметры: 

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

Параметры: 

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

Параметры: 

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

Параметры: 

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

Параметры:

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

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

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

Параметры

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

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

Параметры: 

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

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

Параметры: 

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

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

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

Параметры: 

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

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

Параметры:

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

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

Параметры: 

Примеры: 

-- 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 с редактированием этого файла.

Параметры:

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

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

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

Параметры:

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

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

Примеры:

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

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

Страница-источник на сайте falconspace.ru