Когда пользователь нажимает кнопку «Создать» в пользовательском интерфейсе Диска и выбирает приложение в пользовательском интерфейсе Диска, Диск перенаправляет пользователя на новый URL-адрес этого приложения, определенный в разделе «Настройка интеграции пользовательского интерфейса Диска» .
Затем ваше приложение получает набор переменных шаблона по умолчанию в параметре state
. Информация state
по умолчанию для нового URL-адреса:
{
"action":"create",
"folderId":"FOLDER_ID",
"folderResourceKey":"FOLDER_RESOURCE_KEY",
"userId":"USER_ID"
}
Этот вывод включает в себя следующие значения:
-
create
: выполняемое действие. Значениеcreate
, когда пользователь нажимает кнопку «Создать» в пользовательском интерфейсе Диска . - FOLDER_ID : идентификатор родительской папки.
- FOLDER_RESOURCE_KEY : ключ ресурса родительской папки.
- USER_ID : идентификатор профиля, который однозначно идентифицирует пользователя.
Ваше приложение должно отреагировать на этот запрос, выполнив следующие действия:
- Убедитесь, что поле
action
имеет значениеcreate
. - Используйте значение
userId
, чтобы создать новый сеанс для пользователя. Дополнительную информацию о вошедших в систему пользователях см. в разделе Пользователи и новые события . - Используйте метод
files.create
для создания файлового ресурса. Если в запросе былfolderId
, установите дляparents
folderId
. - Если в запросе был
folderResourceKey
, установите заголовок запросаX-Goog-Drive-Resource-Keys
. Дополнительные сведения о ключах ресурсов см. в разделе Доступ к файлам, доступным по ссылке, с помощью ключей ресурсов .
Параметр state
закодирован в URL-адресе, поэтому ваше приложение должно обрабатывать escape-символы и анализировать их как JSON.
Пользователи и новые события
Приложения Диска должны рассматривать все события «создания» как потенциальные входы в систему. У некоторых пользователей может быть несколько учетных записей, поэтому идентификатор пользователя в параметре state
может не соответствовать текущему сеансу. Если идентификатор пользователя в параметре state
не соответствует текущему сеансу, завершите текущий сеанс вашего приложения и войдите в систему как запрошенный пользователь.