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

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space
Веб-платформа для создания личных кабинетов

Платформа Falcon Space

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

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

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

по ходу эксплуатации программы

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

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

Веб-приложения на MS SQL. Партнерская программа для разработчиков и веб-студий

Вы можете разрабатывать самостоятельно или сотрудничать с нами в плане веб-разработки на платформе Falcon Space, используя только SQL и HTML.
Смотреть примеры с кодом SQL
Документация по платформе
Работа на MS SQL Server

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