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