ARCore Cloud Anchor Management API

Cloud Anchors را خارج از برنامه ARCore خود با استفاده از ARCore Cloud Anchor Management API مدیریت کنید.

شروع شدن

نمونه عملیات

مجوز

یک کلید حساب سرویس در کنسول 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 page، روی 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 برای Cloud Anchors Management 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

فهرست تمام لنگرهای ابری

صفحه اول Cloud Anchors را دریافت کنید، که به صورت اختیاری بر اساس 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 برگردد، لنگرهای بیشتری برای فهرست کردن وجود دارد. از پارامتر query 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 را به‌روزرسانی کنید تا تا حداکثر زمان مجاز زندگی کند

درخواست یک 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"
}

Cloud Anchors را حذف کنید

حذف یک Cloud Anchor:

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" ]}'