استخدام ARCore API على Google Cloud

اختيار النظام الأساسي:

ميزات ARCore مثل Geospatial تستخدم واجهة برمجة التطبيقات وCloud Anchors ARCore API مستضافة على Google Cloud. عند استخدام هذه الميزات، لن يتمكن تطبيقك بيانات الاعتماد للوصول إلى خدمة واجهة برمجة تطبيقات ARCore.

تصف هذه البدء السريع كيفية إعداد تطبيقك بحيث يمكنه التواصل مع خدمة ARCore API المستضافة على Google Cloud.

إنشاء مشروع جديد على Google Cloud أو استخدام مشروع حالي

إذا كان لديك مشروع حالي، اختَره.

الانتقال إلى أداة اختيار المشروع

إذا لم يكن لديك مشروع حالي على Google Cloud، أنشِئ مشروعًا.

إنشاء مشروع جديد

تفعيل ARCore API

لاستخدام ARCore API، عليك تفعيلها في مشروعك.

تفعيل ARCore API

إعداد طريقة التفويض

يمكن لتطبيق iOS الاتصال بواجهة برمجة تطبيقات ARCore باستخدام تطبيقين مختلفين طرق التفويض: المصادقة بدون مفتاح، والتي تعني الطريقة الموصى بها، وتفويض مفتاح واجهة برمجة التطبيقات:

  • تستخدم المصادقة بدون مفتاح رمزًا مميّزًا موقَّعًا للتحكم في الوصول إلى واجهة برمجة التطبيقات. هذا النمط تتطلب خادمًا تملكه أنت للتوقيع على الرموز المميزة والتحكم في الوصول إلى واجهة برمجة التطبيقات.
  • مفتاح واجهة برمجة التطبيقات هو سلسلة تحدِّد مشروعًا على Google Cloud. مفاتيح واجهة برمجة التطبيقات هي لا تعتبر آمنة بشكل عام حيث يمكن للعملاء الوصول إليها عادةً. يمكنك استخدام تفويض الرمز المميّز للتواصل مع واجهة برمجة تطبيقات ARCore.

بدون مفتاح

يتيح ARCore تفويض طلبات البيانات من واجهة برمجة التطبيقات في نظام التشغيل iOS باستخدام (JSON Web رمز مميّز). يجب أن يوقّع Google على الرمز المميّز حساب الخدمة.

لإنشاء رموز مميّزة لنظام التشغيل iOS، يجب أن تتوفّر لديك نقطة نهاية على الخادم. تستوفي المتطلبات التالية:

  • يجب أن تحمي آلية التفويض التي تستخدمها نقطة النهاية.

  • يجب أن تنشئ نقطة النهاية رمزًا مميزًا جديدًا في كل مرة، على النحو التالي:

    • ويحصل كل مستخدم على رمز مميّز فريد.
    • لا تنتهي صلاحية الرموز المميّزة على الفور.

إنشاء حساب خدمة ومفتاح توقيع

اتّبِع الخطوات التالية لإنشاء حساب خدمة على Google ومفتاح توقيع:

  1. في Google Cloud، افتح صفحة "بيانات الاعتماد".
    بيانات الاعتماد
  2. انقر على إنشاء بيانات اعتماد > حساب الخدمة:
  3. ضمن تفاصيل حساب الخدمة، اكتب اسمًا للحساب الجديد، ثم انقر على إنشاء:
  4. في صفحة أذونات حساب الخدمة، انتقِل إلى القائمة المنسدلة اختيار دور. اختَر حسابات الخدمة >. مُنشئ الرمز المميّز لحساب الخدمة، ثم انقر على "متابعة":
  5. في صفحة منح المستخدمين إذن الوصول إلى حساب الخدمة هذا، انقر على "تم".
  6. في بيانات الاعتماد ابحث عن قسم "حسابات الخدمة" وانقر على اسم الحساب الذي قمتَ بإنشائه للتو.
  7. في صفحة تفاصيل حساب الخدمة، مرِّر لأسفل إلى قسم "المفاتيح" حدد إضافة مفتاح > إنشاء مفتاح جديد
  8. اختَر JSON كنوع المفتاح وانقر على إنشاء.

    سيؤدي هذا الإجراء إلى تنزيل ملف JSON يتضمّن المفتاح الخاص إلى جهازك. متجر ملف مفتاح JSON الذي تم تنزيله في موقع آمن.

إنشاء رموز مميّزة على خادمك

لإنشاء رموز مميزة جديدة (JWT) على خادمك، استخدم رموز JWT القياسية المكتبات وملف JSON الذي نزّلته بأمان من حساب الخدمة الجديد.

إنشاء رموز مميزة على جهاز التطوير

لإنشاء JWT على جهاز التطوير، استخدِم ما يلي: الأمر oauth2l:

oauth2l fetch --cache "" --jwt --json $KEYFILE --audience "https://arcore.googleapis.com/"

يجب تحديد موقع ذاكرة تخزين مؤقت فارغ باستخدام علامة --cache من أجل ضمان إنشاء رمز مميز مختلف في كل مرة. تأكد من قطع السلسلة الناتجة. ستؤدي المسافات الزائدة أو الأحرف في الأسطر الجديدة إلى رفض الرمز المميّز.

التوقيع على الرمز المميّز

يجب استخدام خوارزمية RS256 والادعاءات التالية للتوقيع على JWT:

  • iss — عنوان البريد الإلكتروني لحساب الخدمة.
  • sub — عنوان البريد الإلكتروني لحساب الخدمة.
  • iat — وقت حقبة Unix الذي تم فيه إنشاء الرمز المميز، بالثواني
  • expiat + 3600 (ساعة واحدة) هو وقت حقبة يونكس عند انتهاء صلاحية الرمز المميز، بالثواني.
  • aud — الجمهور يجب ضبطها على https://arcore.googleapis.com/

لا يلزم تقديم مطالبات غير قياسية في حمولة JWT، ولكن قد تجد مطالبة واحدة (uid) مفيدة في تحديد المستخدم المعني

إذا استخدمت أسلوبًا مختلفًا لإنشاء JWT الخاص بك، مثل استخدام ملف واجهة برمجة التطبيقات في بيئة تديرها Google، احرص على توقيع JWT مع المطالبات في هذا القسم. قبل كل شيء، تأكد من صحة الجمهور.

تمرير الرمز المميّز في جلسة ARCore

  1. إنشاء جلسة باستخدام GARSession#sessionWithError:

    NSError *error = nil;
    GARSession *garSession = [GARSession sessionWithError:&error];
    
  2. عند الحصول على رمز مميّز، مرِّره إلى الجلسة باستخدام setAuthToken: وبخلاف ذلك، ستستخدم الجلسة أحدث رمز تفويض صالح الذي مررت فيه. وعليك استدعاء هذه الطريقة في كل مرة تعيد فيها تحديث الرمز المميّز:

    [garSession setAuthToken: authToken]
    

تم إعداد تطبيقك الآن لاستخدام المصادقة بدون مفتاح.

يُرجى مراعاة ما يلي عند تمرير رمز مميّز إلى الجلسة:

  • في حال استخدام مفتاح واجهة برمجة التطبيقات لإنشاء الجلسة، سيتجاهل ARCore الرمز المميز وتسجيل خطأ.

    إذا لم تعد بحاجة إلى مفتاح واجهة برمجة التطبيقات، يمكنك حذفه من خلال Google Developers. Console وإزالته من التطبيق.

  • يتجاهل ARCore الرموز المميزة التي تحتوي على مسافات أو رموز خاصة.

  • تنتهي صلاحية الرموز المميزة عادةً بعد ساعة واحدة. إذا كان هناك احتمال أن أن تنتهي صلاحية الرمز أثناء استخدامه، ويحصل على رمز مميز جديد ويمرره إلى واجهة برمجة التطبيقات.

مفتاح واجهة برمجة التطبيقات

  1. في Google Cloud، افتح صفحة "بيانات الاعتماد".
    بيانات الاعتماد
  2. انقر على إنشاء بيانات اعتماد، ثم اختَر مفتاح واجهة برمجة التطبيقات من القائمة.
    يعرض مربّع الحوار "إنشاء مفتاح واجهة برمجة التطبيقات" السلسلة الخاصة بالمفتاح الذي تم إنشاؤه حديثًا.
  3. عند إنشاء GARSession، استخدِم GARSession#sessionWithAPIKey:bundleIdentifier:error: وأدخِل مفتاح واجهة برمجة التطبيقات:

    self.garSession = [GARSession sessionWithAPIKey:@"your-api-key"
                                   bundleIdentifier:nil
                                              error:&error];
    
  4. مراجعة مستندات حول القيود المفروضة على مفتاح واجهة برمجة التطبيقات لتأمين مفتاح واجهة برمجة التطبيقات.

تم إعداد تطبيقك الآن لاستخدام مفاتيح واجهة برمجة التطبيقات.

الخطوات التالية

بعد تهيئة التفويض، اطلع على ميزات ARCore التالية التي تستخدم فهو: