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