Интеграция с «Новым» интерфейсом Drive. кнопка

Когда пользователь нажимает кнопку «Создать» в пользовательском интерфейсе Диска и выбирает приложение в пользовательском интерфейсе Диска, Диск перенаправляет пользователя на новый 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 : идентификатор профиля, который однозначно идентифицирует пользователя.

Ваше приложение должно отреагировать на этот запрос, выполнив следующие действия:

  1. Убедитесь, что поле action имеет значение create .
  2. Используйте значение userId , чтобы создать новый сеанс для пользователя. Дополнительную информацию о вошедших в систему пользователях см. в разделе Пользователи и новые события .
  3. Используйте метод files.create для создания файлового ресурса. Если в запросе был folderId , установите для parents folderId .
  4. Если в запросе был folderResourceKey , установите заголовок запроса X-Goog-Drive-Resource-Keys . Дополнительные сведения о ключах ресурсов см. в разделе Доступ к файлам, доступным по ссылке, с помощью ключей ресурсов .

Параметр state закодирован в URL-адресе, поэтому ваше приложение должно обрабатывать escape-символы и анализировать их как JSON.

Пользователи и новые события

Приложения Диска должны рассматривать все события «создания» как потенциальные входы в систему. У некоторых пользователей может быть несколько учетных записей, поэтому идентификатор пользователя в параметре state может не соответствовать текущему сеансу. Если идентификатор пользователя в параметре state не соответствует текущему сеансу, завершите текущий сеанс вашего приложения и войдите в систему как запрошенный пользователь.