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

Когда пользователь нажимает кнопку «Создать» в пользовательском интерфейсе Drive и выбирает приложение в интерфейсе Drive, Drive перенаправляет пользователя на URL-адрес создания этого приложения, указанный в разделе «Настройка интеграции с пользовательским интерфейсом Drive» .

Затем ваше приложение получает набор переменных шаблона по умолчанию в параметре state . Информация state по умолчанию для нового URL-адреса выглядит следующим образом:

{
  "action":"create",
  "folderId":"FOLDER_ID",
  "folderResourceKey":"FOLDER_RESOURCE_KEY",
  "userId":"USER_ID"
}

В этот вывод включены следующие значения:

  • create : Выполняемое действие. Значение create , когда пользователь нажимает кнопку «Создать» в пользовательском интерфейсе Google Drive .
  • 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, поэтому ваше приложение должно обрабатывать экранирующие символы и интерпретировать его как JSON.

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

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