API Google Picker позволяет пользователям выбирать или загружать файлы из Google Диска. Пользователи могут предоставлять вашим настольным и мобильным приложениям разрешение на доступ к своим данным в Диске, обеспечивая безопасный и авторизованный способ взаимодействия с файлами.
Инструмент Google Picker выступает в роли диалогового окна «Открыть файл» для файлов, хранящихся на Google Диске, и обладает рядом функций:
- Похожий внешний вид и функциональность на интерфейс Google Drive .
- Несколько вариантов отображения, показывающих предварительный просмотр и миниатюрные изображения файлов Google Drive.
- Перенаправление на Google Picker в новой вкладке браузера пользователя по умолчанию.
Обратите внимание, что Google Picker не позволяет пользователям упорядочивать, перемещать или копировать файлы из одной папки в другую. Для управления файлами необходимо использовать либо API Google Drive , либо пользовательский интерфейс Drive.
Предварительные требования
Приложения, использующие Google Picker, должны соблюдать все действующие Условия предоставления услуг . Самое важное – вы должны корректно указывать свои данные в запросах.
У вас также должен быть проект в Google Cloud .
Настройте свою среду
Для начала использования API Google Picker необходимо настроить рабочую среду.
Включить API
Перед использованием API Google необходимо включить их в проекте Google Cloud. В одном проекте Google Cloud можно включить один или несколько API.В консоли Google Cloud включите API Google Picker.
Создайте ключ API
Ключ API представляет собой длинную строку, содержащую буквы верхнего и нижнего регистра, цифры, символы подчеркивания и дефисы, например, AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe . Этот метод аутентификации используется для анонимного доступа к общедоступным данным, таким как файлы Google Workspace, предоставленные с помощью параметра общего доступа «Любой пользователь в Интернете по этой ссылке». Для получения более подробной информации см. раздел «Управление ключами API» .
Для создания ключа API:
- В консоли Google Cloud перейдите в > API и сервисы > Учетные данные .
- Нажмите «Создать учетные данные» > «Ключ API» .
- Ваш новый API-ключ отображен.
- Нажмите «Копировать , чтобы скопировать свой API-ключ для использования в коде вашего приложения. API-ключ также можно найти в разделе «API-ключи» в учетных данных вашего проекта.
- Для предотвращения несанкционированного использования мы рекомендуем ограничить места и типы API, для которых можно использовать ключ API. Более подробную информацию см. в разделе «Добавление ограничений API» .
Авторизация учетных данных для настольного приложения
Для аутентификации конечных пользователей и доступа к пользовательским данным в вашем приложении необходимо создать один или несколько идентификаторов клиента OAuth 2.0. Идентификатор клиента используется для идентификации отдельного приложения на серверах OAuth Google. Если ваше приложение работает на нескольких платформах, необходимо создать отдельный идентификатор клиента для каждой платформы.- В консоли Google API перейдите в > Платформа аутентификации Google > Клиенты .
- Нажмите «Создать клиента» .
- Выберите «Тип приложения» > «Настольное приложение» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google API.
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
Для того чтобы приложения получили разрешение на доступ к файлам, ранее им предоставленным, необходимо выполнить следующие шаги:
Для доступа к API Google Drive необходимо получить токен OAuth 2.0 с областью действия
drive.file,driveилиdrive.readonly, следуя этим инструкциям: Использование OAuth 2.0 для доступа к API Google . Дополнительную информацию об областях действия см. в разделе «Выбор областей действия API Google Drive» .Передайте токен OAuth 2.0 в API Google Диска, чтобы читать и изменять файлы, к которым пользователь ранее предоставил доступ.
Отобразить Google Выбор
API Google Picker для настольных приложений перенаправляет на Google Picker в новой вкладке браузера пользователя по умолчанию. После того, как пользователь предоставит доступ и выберет необходимые файлы, Google Picker вернется к вызывающему приложению через URL-адрес обратного вызова. Чтобы открыть API Google Picker на клиентской странице, используйте API Google Picker для веб-приложений. Для получения дополнительной информации см. Обзор веб-приложений .
Чтобы разрешить пользователям предоставлять доступ к дополнительным файлам или выбирать файлы для использования в рабочем процессе вашего настольного приложения, выполните следующие действия:
Чтобы открыть страницу доступа OAuth 2.0 в новой вкладке браузера, запросите доступ к области
drive.file, используя следующие инструкции: Использование OAuth 2.0 для доступа к API Google . Дополнительную информацию об областях действия см. в разделе «Выбор областей действия API Google Drive» .Обратите внимание, что для настольных приложений разрешена только область
drive.file, и её нельзя комбинировать с какой-либо другой областью видимости.URL-адрес новой вкладки браузера принимает все стандартные параметры строки запроса OAuth .
Необходимо добавить параметры URL-адреса
promptиtrigger_onepickк запросу URL-адреса авторизации OAuth 2.0:Параметр Описание Статус prompt=consentЗапрос на доступ к файлу. Необходимый trigger_onepick=trueВключите Google Picker. Необходимый Вы также можете настроить Google Picker, добавив несколько дополнительных параметров:
Параметр Описание Статус allow_multiple=trueЕсли это так, разрешите пользователю выбирать несколько файлов. Необязательный mimetypes= MIMETYPESСписок MIME-типов , разделенных запятыми, для фильтрации результатов поиска. Если не указан, в представлении отображаются файлы всех MIME-типов. Необязательный file_ids= FILE_IDSСписок идентификаторов файлов, разделенных запятыми, для фильтрации результатов поиска. Если не указан, в представлении отображаются все файлы. Необязательный allow_folder_selection=trueЕсли это так, разрешите пользователю также выбирать папки. Необязательный В следующем примере показан запрос URL-адреса для авторизации по протоколу OAuth 2.0:
https://accounts.google.com/o/oauth2/v2/auth? \ client_id=CLIENT_ID \ &scope=https://www.googleapis.com/auth/drive.file \ &redirect_uri=REDIRECT_URI \ &response_type=code \ &access_type=offline \ &prompt=consent \ &trigger_onepick=trueЗамените следующее:
CLIENT_ID: Идентификатор клиента вашего настольного приложения.REDIRECT_URI: Адрес, на который сервер авторизации перенаправляет браузер пользователя после успешной аутентификации. Например,https://www.cymbalgroup.com/oauth2callback.
Указанный
redirect_uriдолжен быть общедоступным URL-адресом HTTPS. Если вы хотите использовать пользовательский протокол или URL-адрес localhost дляredirect_uri, вам необходимо использовать общедоступный URL-адрес HTTPS, который затем будет перенаправлять на пользовательский протокол или URL-адрес localhost.После того как пользователь предоставит доступ и выберет необходимые файлы, OAuth перенаправит пользователя на указанный в запросе
redirect_uriс добавлением следующих параметров URL:picked_file_ids: Если пользователь предоставил доступ и выбрал файлы, то отображается список идентификаторов выбранных файлов, разделенных запятыми.code: Токен доступа или код доступа, определяемый параметромresponse_type, заданным в запросе. Этот параметр включает новый код авторизации .scope: Область(и), включенные в запрос.error: Если пользователь отменил запрос в процессе подтверждения согласия, отобразится ошибка.
В следующем примере показан ответ URL-адреса авторизации OAuth 2.0:
https://REDIRECT_URI?picked_file_ids=PICKED_FILE_IDS&code=CODE&scope=SCOPESПриложения должны обменять код авторизации из шага 3 на новый токен OAuth 2.0. Для получения дополнительной информации см. раздел «Обмен кода авторизации на токены обновления и доступа» .
Затем приложения могут использовать идентификаторы файлов из параметра URL на шаге 3 и токен OAuth 2.0, полученный на шаге 4, для вызова API Google Drive. Для получения дополнительной информации см. обзор API Google Drive .
Используйте Google Picker на Android.
Вы также можете использовать Google Picker в своем мобильном приложении для Android.
Авторизация учетных данных для мобильного приложения
Для использования Google Picker в вашем приложении для Android необходимо авторизовать пользователей с помощью OAuth 2.0, аналогично тому, как это делается в настольных приложениях . Подробную информацию об аутентификации в Android см. в разделе «Авторизация доступа к данным пользователей Google» .
Чтобы отобразить Google Picker во время авторизации, создайте AuthorizationRequest и используйте PICKER_OAUTH_TRIGGER с AuthorizationRequest.ResourceParameter .
При формировании AuthorizationRequest :
- Используйте область действия
https://www.googleapis.com/auth/drive.file. - Вызовите
setOptOutIncludingGrantedScopes(true), чтобы убедиться, что возвращаемый токен предназначен только для области действияhttps://www.googleapis.com/auth/drive.file, а не для каких-либо ранее предоставленных областей действия. - Установите для поля
AuthorizationRequest.PromptзначениеCONSENT, чтобы запросить у пользователя согласие, даже если оно было предоставлено ранее. Это поле применимо только к запросам, содержащим параметры ресурсов. - При желании можно использовать битовый оператор "ИЛИ" (
|), чтобы также установить полеAuthorizationRequest.Promptв значениеSELECT_ACCOUNT, что позволит пользователю выбрать учетную запись до отображения запроса на подтверждение.
Вызовите Google Picker
Как и в настольных приложениях, вы можете настроить Google Picker, добавив несколько дополнительных параметров:
-
PICKER_ALLOW_MULTIPLE: Позволяет пользователям выбирать несколько файлов. -
PICKER_MIMETYPES: Возвращает список MIME-типов, разделенных запятыми, для фильтрации результатов поиска. Если не задано, в представлении отображаются файлы для всех MIME-типов. -
PICKER_FILE_IDS: Возвращает список идентификаторов файлов, разделенных запятыми, для фильтрации результатов поиска. Если не задано, в представлении отображаются все файлы.
Для получения дополнительной информации о необязательных параметрах в настольных приложениях см. раздел «Отображение средства выбора Google» .
После того как пользователь предоставит доступ и выберет необходимые файлы, возвращается объект getTokenResponseParams ресурса AuthorizationResult . Если пользователь предоставил доступ, этот объект содержит значение picked_file_ids , представляющее собой список идентификаторов выбранных файлов, разделенных запятыми.