В этом кратком руководстве вы получаете токен OAuth для своей учетной записи и отправляете одноразовые запросы к конечным точкам API переносимости данных.
В этом кратком руководстве рассказывается, как использовать API переносимости данных для однократного доступа к пользовательским данным. Информацию о постоянном доступе к пользовательским данным см. в разделе «Использование доступа на основе времени» . Чтобы узнать, как применить временные фильтры к вашему запросу, см. раздел «Применение временных фильтров» .
Что вы узнаете
Из этого краткого руководства вы узнаете, как:
- Отправьте аутентифицированный запрос в конечную точку
InitiatePortabilityArchive
, предоставив действительный токен OAuth. Ответ должен содержать действительныйjob_id
. - Отправьте аутентифицированный запрос в конечную точку
GetPortabilityArchiveState
. Ответ должен содержать допустимое состояние задания, а после завершения задания — подписанный URL-адрес. - (Необязательно) Отправьте аутентифицированный запрос с действительным токеном OAuth в конечную точку
InitiatePortabilityArchive
во второй раз, используя те же учетные данные. Это возвращает ошибкуRESOURCE_EXHAUSTED
и призвано подчеркнуть важность конечной точкиResetAuthorization
. - Отправьте аутентифицированный запрос в конечную точку
ResetAuthorization
. Этот запрос отменяет все предоставленные пользователем области OAuth. - (Необязательно) Отправьте запрос в конечную точку
InitiatePortabilityArchive
используя тот же токен OAuth, который вы использовали ранее. Запрос должен завершиться неудачей после сброса авторизации.
Предварительные условия
Чтобы запустить это краткое руководство, вам необходимо:
- Убедитесь, что API переносимости данных доступен пользователям в вашем регионе. Список поддерживаемых стран и регионов см. в разделе «Общие вопросы» на странице «Отправка копии своих данных третьему лицу».
- Выполните шаги по настройке API переносимости данных.
- Следуйте инструкциям по настройке OAuth для веб-приложений JavaScript . В рабочей среде обычно используется другой поток, например поток OAuth для приложений веб-сервера . Для простоты в этом кратком руководстве используется поток веб-приложения JavaScript.
- При создании учетных данных для авторизации запишите свой идентификатор клиента OAuth 2.0 и URI авторизованного перенаправления (например, https://google.com). Они понадобятся вам позже в кратком руководстве.
- При настройке областей для API переносимости данных обратите внимание, что в этом кратком руководстве используется группа ресурсов
myactivity.search
: https://www.googleapis.com/auth/dataportability.myactivity.search. - Когда вы выбираете период времени, на который хотите предоставить доступ, в этом кратком руководстве используется однократный доступ .
- Получите токен OAuth.
- Получите доступ к учетной записи, принадлежащей или контролируемой вашей организацией. Данные о поисковой активности этого аккаунта экспортируются в этом кратком руководстве.
Получить токен OAuth
В этом кратком руководстве вы отправляете запрос авторизации для получения токена OAuth с помощью URL-адреса. Этот процесс использует поток веб-приложений JavaScript . Этот поток не возвращает токен обновления.
Для рабочего приложения вы обычно используете поток OAuth для получения токена обновления, который можно использовать для создания токенов доступа по требованию. Примером этого может быть поток для серверных веб-приложений .
Чтобы получить токен OAuth:
Создайте URL-адрес, подобный следующему.
https://accounts.google.com/o/oauth2/v2/auth? client_id=
client_id & redirect_uri=redirect_uri & response_type=token& scope=https://www.googleapis.com/auth/dataportability.myactivity.search& state=developer-specified-valueВ URL-адресе:
-
client_id
— ваш идентификатор клиента OAuth. -
redirect_uri
— ваш авторизованный URI перенаправления; например, https://google.com.
Обратите внимание, что область действия, используемая в URL-адресе для этого краткого руководства, — это область действия поиска. Вы также можете использовать область действия YouTube или обе области.
-
Вставьте URL-адрес в адресную строку браузера и следуйте инструкциям в потоке OAuth. Для этого процесса вам потребуется войти в учетную запись, принадлежащую или контролируемую вашей организацией, которую вы используете для этого краткого руководства.
Это учетная запись, которая дает согласие на области действия OAuth. Экран согласия должен выглядеть следующим образом (текст на вашем экране может отличаться от текста на этом изображении):
Выберите области предоставления доступа и продолжительность предоставления доступа к данным учетной записи (один раз, 30 дней или 180 дней). Для этого краткого руководства выберите Только один раз .
После предоставления согласия и выбора продолжительности доступа вы должны быть перенаправлены на URI перенаправления — https://google.com. URL-адрес, созданный в адресной строке, включает токен доступа OAuth.
Например, если учетная запись пользователя предоставляет доступ OAuth к области
dataportability.myactivity.search
, сгенерированный URL-адрес будет выглядеть следующим образом:https://google.com/#state=developer-specified-value&access_token=
your_OAuth_token &token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/dataportability.myactivity.searchВ URL-адресе your_OAuth_token — это строка, представляющая токен.
Чтобы проверить токен OAuth, вставьте этот URL-адрес в свой браузер:
https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=
your_OAuth_token Ответ должен выглядеть следующим образом:
{ "azp": <your_azp_value>, "aud": <your_aud_value>, "scope": "https://www.googleapis.com/auth/dataportability.myactivity.search", "exp": "1694210968", "expires_in": "3334", "access_type": "online" }
Для отправки запросов вам не нужны поля
azp
илиaud
. Полеazp
представляетclient_id
авторизованного докладчика, а полеaud
определяет аудиторию, для которой предназначен этот токен, которая будет равна одному из идентификаторов клиента вашего приложения.Соберите свой токен OAuth и ключ API . Они нужны вам для выполнения вызовов API переносимости данных.
Отправлять запросы на конечные точки
В этом кратком руководстве вы используете команды Curl для вызова конечных точек API переносимости данных. Для этих команд требуется токен OAuth и ключ API, которые вы собрали ранее.
Чтобы вызвать API переносимости данных:
Сначала вы отправляете аутентифицированный запрос в конечную точку
InitiatePortabilityArchive
. Этот запрос запускает задание архивирования.Запустите следующую команду Curl:
curl -H 'Authorization: Bearer
your_OAuth_token ' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"]}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiateВ команде:
-
your_OAuth_token
— это ваш токен OAuth.
Запрос
InitiatePortabilityArchive
возвращаетjob_id
иaccessType
. Идентификатор задания используется для получения состояния архива данных, а тип доступа определяет, был ли вам предоставлен однократный или временной доступ к данным. Для целей этого краткого руководства у вас должен быть одноразовый доступ.{ 'archiveJobId': '<your_job_id>' 'accessType': 'ACCESS_TYPE_ONE_TIME' }
Если вы не предоставите действительный токен OAuth, будет возвращено следующее сообщение об ошибке:
Request had invalid authentication credentials. Expected OAuth 2.0 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
-
Затем вы отправляете аутентифицированный запрос в конечную точку
GetPortabilityArchiveState
, чтобы получить статус задания архивирования.Запустите следующую команду Curl:
curl -H 'Authorization: Bearer
your_OAuth_token ' -X GET \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/archiveJobs/your_job_id /portabilityArchiveStateВ команде:
-
your_OAuth_token
— это ваш токен OAuth. -
your_job_id
— это идентификатор задания, возвращаемый запросомInitiatePortabilityArchive
.
Ответ зависит от состояния задания. Если задание не завершено, в ответе указывается текущее состояние. Вам следует периодически отправлять запросы к этой конечной точке, пока задание не будет завершено.
{ "state": "IN_PROGRESS" }
Если задание выполнено, ответ содержит состояние и один или несколько подписанных URL-адресов, которые используются для загрузки архива данных.
{ "state": "COMPLETE", "urls": [ "<signed_url>" ] }
Вставьте подписанный URL-адрес в браузер, чтобы загрузить архив данных. Вам следует проверить содержимое архива, чтобы убедиться, что он содержит ожидаемые данные о поисковой активности.
-
(Необязательно) Повторите предыдущую команду, чтобы отправить аутентифицированный запрос в конечную точку
InitiatePortabilityArchive
.curl -H 'Authorization: Bearer
your_OAuth_token ' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"]}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiateВ команде:
-
your_OAuth_token
— это ваш токен OAuth.
В ответе должно быть указано, что единоразовое согласие на ресурс
myactivity.search
для этого пользователя исчерпано.... "error": { "code": 429, "message": "Requested resources have already been exported. Please call ResetAuthorization and re-obtain consent before trying again.", "status": "RESOURCE_EXHAUSTED", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "RESOURCE_EXHAUSTED_ONE_TIME", "domain": "dataportability.googleapis.com" "metadata": { "previous_job_ids": "{previous_job_ids}" "access_type": "ACCESS_TYPE_ONE_TIME" ...
-
Отправьте аутентифицированный запрос в конечную точку
ResetAuthorization
. Этот запрос отменяет все предоставленные пользователем области OAuth и позволяет вам вызватьInitiatePortabilityArchive
для группы ресурсов, которую вы уже использовали.curl -H 'Authorization: Bearer
your_OAuth_token ' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/authorization:resetВ команде:
-
your_OAuth_token
— это ваш токен OAuth.
Эта команда возвращает пустой ответ.
-
(Необязательно) После сброса авторизации отправьте еще один запрос в конечную точку
InitiatePortabilityArchive
. Используйте ту же команду Curl, которую вы использовали ранее.curl -H 'Authorization: Bearer
your_OAuth_token ' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"]}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiateВ команде:
-
your_OAuth_token
— это ваш токен OAuth.
Ответ должен вернуть ошибку, поскольку предоставленный вами токен OAuth был отозван.
... "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED" }
-