API управления облачными привязками ARCore

Управляйте облачными привязками за пределами вашего приложения ARCore с помощью API управления облачными привязками ARCore.

Начиная

Примеры операций

Авторизация

Создайте ключ сервисного аккаунта в консоли Google Cloud Platform и сгенерируйте токен OAuth2 для авторизации вызовов API управления Cloud Anchor.

  1. В меню навигации консоли Google Cloud Platform выберите APIs & Services > Credentials .

  2. Выберите нужный проект, затем нажмите Create Credentials > Service account ».

  3. В разделе Service account details » введите имя новой учетной записи, затем нажмите Create .

  4. На странице Service account permissions » перейдите к раскрывающемуся списку Select a role . Выберите Service Accounts > Service Account Token Creator , затем нажмите Continue .

  5. На странице Grant users access to this service account нажмите Done . Вы вернетесь к APIs & Services > Credentials .

  6. На странице Credentials прокрутите вниз до раздела Service Accounts и щелкните имя только что созданной учетной записи.

  7. На странице Service account details прокрутите вниз до раздела Keys и выберите Add Key > Create new key .

  8. Выберите JSON в качестве типа ключа и нажмите Create . На ваш компьютер будет загружен файл JSON, содержащий закрытый ключ. Сохраните загруженный файл ключа JSON в безопасном месте.

Создать токен OAuth2

arcore.management — это область действия OAuth для API управления облачными привязками. По умолчанию oauth2l работает с кешем токенов. Команда fetch извлекает тот же токен. Используйте oauth2l для создания токена OAuth2 для авторизации:

oauth2l fetch --json creds.json arcore.management

Чтобы сгенерировать новый токен, добавьте параметр --cache="" к команде fetch .

oauth2l fetch --cache="" --json creds.json arcore.management

Альтернативно, вызовите oauth2l reset и снова вызовите команду fetch .

oauth2l reset
oauth2l fetch --json creds.json arcore.management

Список всех облачных якорей

Получите первую страницу облачных привязок, опционально отсортированную по expire_time , create_time или last_localize_time .

Запрос:

export BEARER_TOKEN=`(oauth2l fetch --json creds.json arcore.management)`
curl -H "Authorization: Bearer $BEARER_TOKEN" \
"https://arcore.googleapis.com/v1beta2/management/anchors?page_size=50&order_by=last_localize_time%20desc"

Ответ:

{
  "anchors": [
    {
      "name": "anchors/ua-a1cc84e4f11b1287d289646811bf54d1",
      "createTime": "...",
      "expireTime": "...",
      "lastLocalizeTime": "...",
      "maximumExpireTime": "..."
    },
   …
    {
      "name": "anchors/ua-41a3d0233471917875159f6f3c25ea0e",
      "createTime": "...",
      "expireTime": "...",
      "lastLocalizeTime": "...",
      "maximumExpireTime": "..."
    }
  ],
  nextPageToken: "some-long-string"
}

Если ответ возвращается с nextPageToken , в списке есть еще привязки. Используйте параметр запроса next_page_token в следующем запросе, чтобы получить следующий набор результатов.

Запрос:

curl -H "Authorization: Bearer $BEARER_TOKEN" \
"https://arcore.googleapis.com/v1beta2/management/anchors?page_size=50&order_by=last_localize_time%20desc&next_page_token=your-next-page-token-here"

При использовании next_page_token page_size и order_by должны быть одинаковыми для всех запросов. Значение page_size по умолчанию равно 1000 , а значение order_by по умолчанию — expire_time_desc .

Обновите время облачной привязки, чтобы оно существовало до максимально допустимого времени.

Запросите один Cloud Anchor для запроса его lastLocalizeTime и maximumExpireTime .

Запрос:

export BEARER_TOKEN=`(oauth2l fetch --json creds.json arcore.management)`
curl -H "Authorization: Bearer $BEARER_TOKEN" \
"https://arcore.googleapis.com/v1beta2/management/anchors/your-anchor-id-here"

Ответ:

{
  "name": "anchors/ua-f21be53fd8ea57f0169c69fbf827f6b7",
  "createTime": "2020-06-29T21:00:00Z",
  "expireTime": "2020-08-28T22:00:00Z",
  "lastLocalizeTime": "2020-06-29T21:00:00Z",
  "maximumExpireTime": "2021-06-29T21:00:00Z"
}

Получив привязку, обновите ее expireTime до maximumExpireTime .

Запрос:

curl -H "Authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" -X "PATCH" \
"https://arcore.googleapis.com/v1beta2/management/anchors/your-anchor-id-here?updateMask=expire_time" \
-d '{ expireTime: "2021-06-29T21:00:00Z" }'

Ответ:

{
  "name": "anchors/ua-f21be53fd8ea57f0169c69fbf827f6b7",
  "createTime": "2020-06-29T21:00:00Z",
  "expireTime": "2021-06-29T21:00:00Z",
  "lastLocalizeTime": "2020-06-29T21:00:00Z",
  "maximumExpireTime": "2021-06-29T21:00:00Z"
}

Удалить облачные привязки

Удаление одной облачной привязки:

export BEARER_TOKEN=`(oauth2l fetch --json creds.json arcore.management)`
curl -H "Authorization: Bearer $BEARER_TOKEN" -X "DELETE" \
"https://arcore.googleapis.com/v1beta2/management/anchors/your-anchor-id-here"

Удалить пакет облачных привязок:

export BEARER_TOKEN=`(oauth2l fetch --json creds.json arcore.management)`
curl -H "Authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" -X "POST" \
"https://arcore.googleapis.com/v1beta2/management/anchors:batchDelete" \
-d '{ names: [ "anchors/your-anchor-id-here", "anchors/your-anchor-id-here" ]}'