ใช้ ARCore API ใน Google Cloud

เลือกแพลตฟอร์ม:

ฟีเจอร์ของ ARCore เช่น Geospatial API และ Cloud Anchor ใช้ ARCore API ที่โฮสต์ใน Google Cloud เมื่อใช้ฟีเจอร์เหล่านี้ แอปพลิเคชันจะใช้ข้อมูลเข้าสู่ระบบเพื่อเข้าถึงบริการ ARCore API

การเริ่มต้นอย่างรวดเร็วนี้จะอธิบายวิธีตั้งค่าแอปพลิเคชันเพื่อให้สื่อสารกับบริการ ARCore API ที่โฮสต์บน Google Cloud ได้

สร้างโปรเจ็กต์ Google Cloud ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่

หากมีโปรเจ็กต์เดิม ให้เลือกโปรเจ็กต์นั้น

ไปที่ตัวเลือกโปรเจ็กต์

หากยังไม่มีโปรเจ็กต์ Google Cloud ให้สร้างโปรเจ็กต์ดังกล่าว

สร้างโปรเจ็กต์ใหม่

เปิดใช้ ARCore API

คุณต้องเปิดใช้ ARCore API ในโปรเจ็กต์

เปิดใช้ ARCore API

ตั้งค่าวิธีการให้สิทธิ์

แอปพลิเคชัน iOS สามารถสื่อสารกับ ARCore API ได้โดยใช้วิธีการให้สิทธิ์ 2 แบบ ได้แก่ การให้สิทธิ์คีย์แบบไม่ใช้คีย์ ซึ่งเป็นวิธีที่แนะนำและการให้สิทธิ์คีย์ API

  • การให้สิทธิ์แบบไม่ใช้คีย์จะใช้โทเค็นที่ลงนามแล้วเพื่อควบคุมการเข้าถึง API วิธีนี้ต้องใช้เซิร์ฟเวอร์ที่คุณเป็นเจ้าของในการลงนามโทเค็นและควบคุมการเข้าถึง API
  • คีย์ API เป็นสตริงที่ระบุโปรเจ็กต์ Google Cloud โดยทั่วไปแล้วคีย์ API จะไม่ถือว่าปลอดภัยเนื่องจากไคลเอ็นต์จะเข้าถึงได้ ลองใช้การให้สิทธิ์โทเค็นเพื่อสื่อสารกับ ARCore API

แบบไม่ใช้กุญแจ

ARCore รองรับการให้สิทธิ์การเรียก API ใน iOS โดยใช้ (JSON Web Token) โดยโทเค็นต้องลงชื่อโดย บัญชีบริการของ Google

หากต้องการสร้างโทเค็นสำหรับ iOS คุณต้องมีปลายทางในเซิร์ฟเวอร์ที่เป็นไปตามข้อกำหนดต่อไปนี้

  • กลไกการให้สิทธิ์ของคุณเองต้องปกป้องปลายทาง

  • ปลายทางจะต้องสร้างโทเค็นใหม่ทุกครั้ง ดังนี้

    • ผู้ใช้แต่ละรายจะได้รับโทเค็นที่ไม่ซ้ำกัน
    • โทเค็นไม่มีวันหมดอายุในทันที

สร้างบัญชีบริการและคีย์การลงชื่อ

ทำตามขั้นตอนต่อไปนี้เพื่อสร้างบัญชีบริการของ Google และคีย์ Signing

  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 เพื่อให้แน่ใจว่ามีการสร้างโทเค็นที่แตกต่างกันในแต่ละครั้ง อย่าลืมตัด สตริงที่เป็นผลลัพธ์ การเว้นวรรคหรืออักขระขึ้นบรรทัดใหม่จะทำให้ API ปฏิเสธโทเค็น

ลงชื่อในโทเค็น

คุณต้องใช้อัลกอริทึม RS256 และการอ้างสิทธิ์ต่อไปนี้เพื่อลงนามใน JWT

  • iss — อีเมลบัญชีบริการ
  • sub — อีเมลบัญชีบริการ
  • iat — เวลา Unix Epoch เมื่อสร้างโทเค็น หน่วยเป็นวินาที
  • expiat + 3600 (1 ชั่วโมง) เวลา Unix Epoch เมื่อโทเค็นหมดอายุ โดยมีหน่วยเป็นวินาที
  • aud — กลุ่มเป้าหมาย ต้องตั้งค่าเป็น https://arcore.googleapis.com/

เพย์โหลด JWT ไม่จำเป็นต้องมีการอ้างสิทธิ์ที่ไม่เป็นมาตรฐาน แต่คุณอาจพบว่าการอ้างสิทธิ์ uid มีประโยชน์ในการระบุผู้ใช้ที่เกี่ยวข้อง

หากคุณใช้วิธีอื่นในการสร้าง JWT เช่น การใช้ Google API ในสภาพแวดล้อมที่จัดการโดย Google โปรดอย่าลืมลงนาม JWT ด้วยการอ้างสิทธิ์ในส่วนนี้ สิ่งแรกคือ ตรวจสอบว่าผู้ชมถูกต้อง

ส่งโทเค็นในเซสชัน ARCore

  1. สร้างเซสชันโดยใช้ GARSession#sessionWithError:

    NSError *error = nil;
    GARSession *garSession = [GARSession sessionWithError:&error];
    
  2. เมื่อได้รับโทเค็นแล้ว ให้ส่งต่อไปยังเซสชันโดยใช้ setAuthToken: ไม่เช่นนั้น เซสชันจะใช้โทเค็นการให้สิทธิ์ที่ถูกต้องล่าสุดที่คุณส่งเข้ามา เรียกใช้เมธอดนี้ทุกครั้งที่คุณรีเฟรชโทเค็น:

    [garSession setAuthToken: authToken]
    

ตอนนี้แอปของคุณได้รับการกำหนดค่าให้ใช้การตรวจสอบสิทธิ์แบบไม่ใช้คีย์แล้ว

โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อคุณส่งโทเค็นในเซสชัน

  • หากคุณใช้คีย์ API สร้างเซสชัน ARCore จะไม่สนใจโทเค็นและบันทึกข้อผิดพลาด

    หากไม่จำเป็นต้องใช้คีย์ API อีกต่อไป ให้ลบคีย์ใน Google Developers Console และนำคีย์ดังกล่าวออกจากแอปของคุณ

  • ARCore จะไม่สนใจโทเค็นที่มีการเว้นวรรคหรือสัญลักษณ์พิเศษ

  • ซึ่งโดยปกติแล้วโทเค็นจะหมดอายุหลังจากผ่านไป 1 ชั่วโมง หากมีความเป็นไปได้ที่โทเค็นของคุณอาจหมดอายุในระหว่างการใช้งาน ให้ขอรับโทเค็นใหม่และส่งไปยัง API

คีย์ API

  1. เปิดหน้าข้อมูลเข้าสู่ระบบใน Google Cloud
    ข้อมูลเข้าสู่ระบบ
  2. คลิกสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกคีย์ API จากเมนู
    กล่องโต้ตอบการสร้างคีย์ API จะแสดงสตริงสำหรับคีย์ที่สร้างขึ้นใหม่
  3. เมื่อสร้าง GARSession ให้ใช้ GARSession#sessionWithAPIKey:bundleIdentifier:error: แล้วแทรกคีย์ API ดังนี้

    self.garSession = [GARSession sessionWithAPIKey:@"your-api-key"
                                   bundleIdentifier:nil
                                              error:&error];
    
  4. ดูเอกสารประกอบเกี่ยวกับข้อจำกัดของคีย์ API เพื่อรักษาความปลอดภัยของคีย์ API

ตอนนี้แอปได้รับการกําหนดค่าให้ใช้คีย์ API แล้ว

ขั้นตอนถัดไป

เมื่อกำหนดค่าการให้สิทธิ์แล้ว โปรดตรวจสอบฟีเจอร์ ARCore ที่ใช้ฟีเจอร์ดังกล่าวต่อไปนี้