واجهة برمجة تطبيقات ARCore Cloud Anchor Management

يمكنك إدارة Cloud Anchors خارج تطبيق ARCore باستخدام ARCore Cloud Anchor Management API.

البدء

أمثلة على العمليات

التفويض

أنشِئ مفتاح حساب خدمة في وحدة تحكُّم Google Cloud Platform وأنشِئ رمز OAuth2 مميزًا لتفويض طلبات البيانات من واجهة برمجة التطبيقات لإدارة 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 لواجهة برمجة تطبيقات 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

احصل على الصفحة الأولى من 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، سيكون هناك المزيد من علامات الارتساء لعرضها. استخدِم معلمة طلب البحث 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"

حذف مجموعة من Cloud Anchors:

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