ฟีเจอร์ ARCore เช่น Geospatial API และ Cloud Anchors ใช้ ARCore API ที่โฮสต์ใน Google Cloud เมื่อใช้ฟีเจอร์เหล่านี้ แอปพลิเคชันของคุณ จะใช้ข้อมูลเข้าสู่ระบบเพื่อเข้าถึงบริการ ARCore API
การเริ่มต้นอย่างรวดเร็วนี้อธิบายวิธีตั้งค่าแอปพลิเคชันเพื่อให้สื่อสารกับบริการ ARCore API ที่โฮสต์ใน Google Cloud ได้
สร้างโปรเจ็กต์ Google Cloud ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่
หากมีโปรเจ็กต์อยู่แล้ว ให้เลือกโปรเจ็กต์นั้น
หากไม่มีโปรเจ็กต์ Google Cloud อยู่แล้ว ให้สร้างโปรเจ็กต์
เปิดใช้ ARCore API
หากต้องการใช้ ARCore API คุณต้องเปิดใช้ในโปรเจ็กต์
ตั้งค่าวิธีการให้สิทธิ์
แอปพลิเคชัน iOS สามารถสื่อสารกับ ARCore API ได้โดยใช้วิธีการให้สิทธิ์ 2 แบบ ได้แก่ การให้สิทธิ์แบบไม่มีคีย์ ซึ่งเป็นวิธีที่แนะนำ และการให้สิทธิ์คีย์ API
- การให้สิทธิ์แบบไม่มีคีย์จะใช้โทเค็นที่ลงนามเพื่อควบคุมการเข้าถึง API วิธีนี้ต้องใช้เซิร์ฟเวอร์ที่คุณเป็นเจ้าของเพื่อลงนามโทเค็นและควบคุมการเข้าถึง API
- คีย์ API คือสตริงที่ระบุโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google โดยทั่วไปแล้วคีย์ API จะไม่ถือว่าปลอดภัยเนื่องจากไคลเอ็นต์มักจะเข้าถึงได้ โปรดพิจารณาใช้การให้สิทธิ์โทเค็นเพื่อสื่อสารกับ ARCore API
ไม่ใช้กุญแจ
ARCore รองรับการให้สิทธิ์การเรียก API ใน iOS โดยใช้ (JSON Web Token) โทเค็นต้องลงนามโดยบัญชีบริการของ Google
หากต้องการสร้างโทเค็นสำหรับ iOS คุณต้องมีปลายทางในเซิร์ฟเวอร์ที่มีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้
กลไกการให้สิทธิ์ของคุณเองต้องปกป้องปลายทาง
ปลายทางต้องสร้างโทเค็นใหม่ทุกครั้ง โดยมีลักษณะดังนี้
- ผู้ใช้แต่ละรายจะได้รับโทเค็นที่ไม่ซ้ำกัน
- โทเค็นจะไม่หมดอายุทันที
สร้างบัญชีบริการและคีย์การลงนาม
ทำตามขั้นตอนต่อไปนี้เพื่อสร้างบัญชีบริการของ Google และคีย์การลงนาม
- เปิดหน้า "ข้อมูลเข้าสู่ระบบ" ใน Google Cloud
ข้อมูลเข้าสู่ระบบ - คลิกสร้างข้อมูลเข้าสู่ระบบ > บัญชีบริการ
- ในส่วนรายละเอียดบัญชีบริการ ให้พิมพ์ชื่อบัญชีใหม่ แล้วคลิกสร้าง
- ในหน้าสิทธิ์ของบัญชีบริการ ให้ไปที่เมนูแบบเลื่อนลงเลือกบทบาท เลือกบัญชีบริการ > ผู้สร้างโทเค็นบัญชีบริการ แล้วคลิก ต่อไป
- ในหน้าให้สิทธิ์ผู้ใช้เข้าถึงบัญชีบริการนี้ ให้คลิกเสร็จสิ้น
- ในหน้าข้อมูลเข้าสู่ระบบ ให้ค้นหาส่วนบัญชีบริการ แล้วคลิกชื่อบัญชี ที่คุณเพิ่งสร้าง
- ในหน้ารายละเอียดบัญชีบริการ ให้เลื่อนลงไปที่ส่วนคีย์ แล้วเลือกเพิ่มคีย์ > สร้างคีย์ใหม่
เลือก 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— เวลา Epoch ของ Unix เมื่อสร้างโทเค็นในหน่วยวินาทีexp—iat+3600(1 ชั่วโมง) เวลา Unix Epoch เมื่อโทเค็นหมดอายุ เป็นวินาทีaud— กลุ่มเป้าหมาย ต้องตั้งค่าเป็นhttps://arcore.googleapis.com/
คุณไม่จำเป็นต้องระบุการอ้างสิทธิ์ที่ไม่เป็นไปตามมาตรฐานในเพย์โหลด JWT แต่คุณอาจเห็นว่าการอ้างสิทธิ์ uid มีประโยชน์ในการระบุผู้ใช้ที่เกี่ยวข้อง
หากคุณใช้วิธีอื่นในการสร้าง JWT เช่น ใช้ Google API ในสภาพแวดล้อมที่ Google จัดการ โปรดตรวจสอบว่าได้ลงนาม JWT ด้วยการอ้างสิทธิ์ ในส่วนนี้ เหนือสิ่งอื่นใด ตรวจสอบว่ากลุ่มเป้าหมายถูกต้อง
ส่งโทเค็นในเซสชัน ARCore
สร้างเซสชันโดยใช้
GARSession#sessionWithError:NSError *error = nil; GARSession *garSession = [GARSession sessionWithError:&error];เมื่อได้รับโทเค็นแล้ว ให้ส่งไปยังเซสชันโดยใช้
setAuthToken:ไม่เช่นนั้น เซสชันจะใช้โทเค็นการให้สิทธิ์ที่ถูกต้องล่าสุด ที่คุณส่ง เรียกใช้เมธอดนี้ทุกครั้งที่คุณรีเฟรชโทเค็น[garSession setAuthToken: authToken]
ตอนนี้แอปได้รับการกำหนดค่าให้ใช้การตรวจสอบสิทธิ์แบบไม่มีคีย์แล้ว
โปรดทราบสิ่งต่อไปนี้เมื่อส่งโทเค็นไปยังเซสชัน
หากคุณใช้คีย์ API เพื่อสร้างเซสชัน ARCore จะไม่สนใจโทเค็นและบันทึกข้อผิดพลาด
หากไม่ต้องการคีย์ API แล้ว ให้ลบคีย์ใน Google Developers Console และนำออกจากแอป
ARCore จะไม่สนใจโทเค็นที่มีการเว้นวรรคหรือสัญลักษณ์พิเศษ
โดยปกติแล้วโทเค็นจะหมดอายุหลังจากผ่านไป 1 ชั่วโมง หากมีโอกาสที่โทเค็นจะหมดอายุขณะใช้งาน ให้ขอโทเค็นใหม่และส่งไปยัง API
คีย์ API
- เปิดหน้า "ข้อมูลเข้าสู่ระบบ" ใน Google Cloud
ข้อมูลเข้าสู่ระบบ - คลิกสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกคีย์ API จากเมนู
กล่องโต้ตอบสร้างคีย์ API จะแสดงสตริงสำหรับคีย์ที่สร้างขึ้นใหม่ เมื่อสร้าง
GARSessionให้ใช้GARSession#sessionWithAPIKey:bundleIdentifier:error:และใส่คีย์ API ของคุณself.garSession = [GARSession sessionWithAPIKey:@"your-api-key" bundleIdentifier:nil error:&error];- อ่านเอกสารประกอบเกี่ยวกับการจำกัดคีย์ API เพื่อรักษาคีย์ API ให้ปลอดภัย
ตอนนี้แอปได้รับการกำหนดค่าให้ใช้คีย์ API แล้ว
ขั้นตอนถัดไป
เมื่อกำหนดค่าการให้สิทธิ์แล้ว ให้ดูฟีเจอร์ ARCore ต่อไปนี้ที่ใช้