Когда пользователь выбирает файл и нажимает пункт меню «Открыть с помощью» пользовательского интерфейса Диска , Диск перенаправляет пользователя на URL-адрес открытия этого приложения, определенный в разделе «Настройка интеграции пользовательского интерфейса Диска» .
Если вы установили флажок «Импортировать» при настройке интеграции пользовательского интерфейса Drive, пользователь может выбрать для открытия комбинацию файлов приложения и файлов Google Workspace. При настройке интеграции пользовательского интерфейса Drive файлы, специфичные для приложения, определяются в полях «Типы MIME по умолчанию» и «Расширения файлов по умолчанию», тогда как файлы Google Workspace определяются в полях «Вторичные типы MIME» и «Вторичные расширения файлов».
Для каждого файла, который пользователь хочет открыть, Диск проверяет типы MIME на соответствие определенным вами по умолчанию и дополнительным типам MIME:
Для типов MIME, определенных в поле «Типы MIME по умолчанию», идентификатор файла передается в ваше приложение. Информацию о том, как обращаться с файлами, специфичными для приложения, см. в разделе «Обработка открытого URL-адреса для документов, специфичных для приложения» .
Для типов MIME, определенных в поле «Вторичные типы MIME», в пользовательском интерфейсе Диска отображается диалоговое окно с вопросом, в какой тип файла преобразовать файл Google Workspace. Например, если вы выбираете файл Google Docs в пользовательском интерфейсе Диска, а в поле «Вторичные типы MIME» указывается, что ваше приложение поддерживает текст/обычный текст или приложение/pdf, пользовательский интерфейс Диска спрашивает пользователя, хотят ли они преобразовать его в обычный текст или PDF. .
Информацию о том, как обращаться с файлами Google Workspace, см. в разделе «Обработка открытого URL-адреса для документов Google Workspace» . Список документов Google Workspace и форматов преобразования типов MIME см. в разделе Экспорт типов MIME для документов Google Workspace .
Обработка открытого URL-адреса для документов, специфичных для приложения.
Как упоминалось в разделе «Настройка интеграции пользовательского интерфейса Drive» , ваше приложение получает переменные шаблона с информацией, позволяющей вашему приложению открыть файл. Ваше приложение получает набор переменных шаблона по умолчанию в параметре state
. Информация state
по умолчанию для открытого URL-адреса конкретного приложения следующая:
{
"ids": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
Этот вывод включает в себя следующие значения:
- ID : идентификатор родительской папки.
- RESOURCE_KEYS : словарь JSON идентификаторов файлов, сопоставленных с соответствующими ключами ресурсов.
-
open
: выполняемое действие. Значениеopen
при использовании открытого URL-адреса. - USER_ID : идентификатор профиля, который однозначно идентифицирует пользователя.
Ваше приложение должно отреагировать на этот запрос, выполнив следующие действия:
- Убедитесь, что поле
action
имеет значениеopen
и полеids
присутствует. - Используйте значение
userId
, чтобы создать новый сеанс для пользователя. Дополнительную информацию о вошедших в систему пользователях см. в разделе Пользователи и новые события . - Используйте метод
files.get
для проверки разрешений, получения метаданных файла и загрузки содержимого файла, используя значенияID
. - Если в запросе был установлен
resourceKeys
, установите заголовок запросаX-Goog-Drive-Resource-Keys
. Дополнительные сведения о ключах ресурсов см. в разделе Доступ к файлам, доступным по ссылке, с помощью ключей ресурсов .
Параметр state
закодирован в URL-адресе, поэтому ваше приложение должно обрабатывать escape-символы и анализировать их как JSON.
Обработка открытого URL-адреса для документов Google Workspace
Как упоминалось в разделе Настройка интеграции пользовательского интерфейса Drive , ваше приложение получает набор переменных шаблона по умолчанию в параметре state
. Информация state
по умолчанию для открытого URL-адреса Google Workspace:
{
"exportIds": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
Этот вывод включает в себя следующие значения:
- EXPORT_ID : разделенный запятыми список идентификаторов экспортируемых файлов (используется только при открытии встроенных документов Google).
- RESOURCE_KEYS : словарь JSON идентификаторов файлов, сопоставленных с соответствующими ключами ресурсов.
-
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-адресе, поэтому ваше приложение должно обрабатывать escape-символы и анализировать их как JSON.
Пользователи и новые события
Приложения Диска должны рассматривать все события «Открытие с помощью» как потенциальные входы в систему. У некоторых пользователей может быть несколько учетных записей, поэтому идентификатор пользователя в параметре state
может не соответствовать текущему сеансу. Если идентификатор пользователя в параметре state
не соответствует текущему сеансу, завершите текущий сеанс вашего приложения и войдите в систему как запрошенный пользователь.
Связанные темы
Помимо открытия приложения из пользовательского интерфейса Google Диска, приложения могут отображать средство выбора файлов для выбора контента из приложения. Для получения дополнительной информации см. Google Picker .