Когда пользователь выбирает файл и нажимает пункт меню «Открыть с помощью» в Drive UI , Drive перенаправляет пользователя на URL-адрес открытия этого приложения, указанный в разделе «Настройка интеграции Drive UI» .
Если при настройке интеграции с Drive UI вы установили флажок «Импорт», пользователь может выбрать комбинацию файлов, специфичных для приложения, и файлов Google Workspace для открытия. При настройке интеграции с Drive UI файлы, специфичные для приложения, определяются в полях «Типы MIME по умолчанию» и «Расширения файлов по умолчанию», а файлы Google Workspace — в полях «Дополнительные типы MIME» и «Дополнительные расширения файлов».
Для каждого файла, который пользователь хочет открыть, Диск проверяет типы MIME на соответствие определенным вами типам MIME по умолчанию и дополнительным типам MIME:
Для типов MIME, указанных в поле «Типы MIME по умолчанию», идентификатор файла передаётся в ваше приложение. Сведения об обработке файлов, специфичных для приложения, см. в разделе Обработка открытых URL-адресов для документов, специфичных для приложения .
Для типов MIME, указанных в поле «Дополнительные типы MIME», интерфейс Диска отображает диалоговое окно с вопросом о том, в какой тип файла преобразовать файл Google Workspace. Например, если вы выбираете файл Google Docs в интерфейсе Диска, а поле «Дополнительные типы MIME» предполагает, что ваше приложение поддерживает форматы text/plain или application/pdf, интерфейс Диска спросит пользователя, нужно ли преобразовать файл в формат Plain Text или PDF.
Информацию об обработке файлов Google Workspace см. в статье Обработка открытого URL-адреса для документов Google Workspace . Список документов Google Workspace и форматов преобразования типов MIME см. в статье Экспорт типов MIME для документов Google Workspace .
Обрабатывать открытый URL для документов, специфичных для приложения
Как упоминалось в разделе «Настройка интеграции с Drive UI» , ваше приложение получает переменные шаблона с информацией, необходимой для открытия файла. Приложение получает набор переменных шаблона по умолчанию в параметре state
. Информация state
по умолчанию для URL-адреса Open URL, специфичного для приложения, следующая:
{
"ids": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
Этот вывод включает в себя следующие значения:
- ID : Идентификатор родительской папки.
- RESOURCE_KEYS : словарь JSON идентификаторов файлов, сопоставленных с соответствующими ключами ресурсов.
-
open
: выполняемое действие. Значениеopen
при использовании Open URL. - USER_ID : Идентификатор профиля, который однозначно идентифицирует пользователя.
Ваше приложение должно отреагировать на этот запрос, выполнив следующие шаги:
- Убедитесь, что поле
action
имеет значениеopen
и присутствует полеids
. - Используйте значение
userId
для создания нового сеанса для пользователя. Подробнее о вошедших пользователях см. в разделе «Пользователи и новые события» . - Используйте метод
files.get
для проверки разрешений, получения метаданных файла и загрузки содержимого файла с использованием значенийID
. - Если в запросе задан
resourceKeys
, установите заголовок запросаX-Goog-Drive-Resource-Keys
. Подробнее о ключах ресурсов см. в статье Доступ к файлам, доступным по ссылке, с помощью ключей ресурсов .
Параметр state
закодирован в URL, поэтому ваше приложение должно обрабатывать экранированные символы и анализировать его как JSON.
Обработка открытого URL для документов Google Workspace
Как упоминалось в разделе «Настройка интеграции с Drive UI» , ваше приложение получает набор шаблонных переменных по умолчанию в параметре state
. Информация state
по умолчанию для URL-адреса Google Workspace Open:
{
"exportIds": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
Этот вывод включает в себя следующие значения:
- EXPORT_ID : список идентификаторов экспортируемых файлов, разделенных запятыми (используется только при открытии встроенных документов Google).
- RESOURCE_KEYS : словарь JSON идентификаторов файлов, сопоставленных с соответствующими ключами ресурсов.
-
open
: выполняемое действие. Значениеopen
при использовании Open URL. - USER_ID : идентификатор профиля, который идентифицирует пользователя.
Ваше приложение должно отреагировать на этот запрос, выполнив следующие шаги:
Убедитесь, что это запрос на открытие файла, обнаружив как значение
open
в полеstate
, так и наличие поляexportIds
.Используйте метод
files.get
для проверки разрешений, получения метаданных файла и определения типа MIME с использованием значенийEXPORT_ID
.Конвертируйте содержимое файла с помощью метода
files.export
. В следующем примере кода показано, как экспортировать документ Google Workspace в требуемый тип MIME.Если в запросе задан
resourceKey
, установите заголовок запросаX-Goog-Drive-Resource-Keys
. Подробнее о ключах ресурсов см. в разделе Доступ к файлам, доступным по ссылке, с помощью ключей ресурсов .Ява
Питон
Node.js
PHP
Отображать преобразованные файлы как доступные только для чтения или выводить диалоговое окно, позволяющее пользователю сохранить файл как новый тип файла.
Параметр state
закодирован в URL, поэтому ваше приложение должно обрабатывать экранированные символы и анализировать его как JSON.
Пользователи и новые события
Приложения Диска должны обрабатывать все события «Открыть с помощью» как потенциальные входы в систему. У некоторых пользователей может быть несколько учётных записей, поэтому идентификатор пользователя в параметре state
может не соответствовать текущему сеансу. Если идентификатор пользователя в параметре state
не соответствует текущему сеансу, завершите текущий сеанс приложения и войдите в систему как запрошенный пользователь.
Похожие темы
Помимо открытия приложения из пользовательского интерфейса Google Диска, приложения могут отображать средство выбора файлов для выбора содержимого внутри приложения. Подробнее см. в разделе «Средство выбора Google» .