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