ตั้งค่า OAuth สําหรับแอป Android

Home API ใช้ OAuth 2.0 เพื่อให้สิทธิ์เข้าถึงอุปกรณ์ใน โครงสร้าง OAuth อนุญาตให้ผู้ใช้ให้สิทธิ์แก่แอปหรือบริการโดยไม่ต้อง เปิดเผยข้อมูลเข้าสู่ระบบ

หากมีไคลเอ็นต์ OAuth ที่ยืนยันแล้ว (เช่น จากแอปที่เผยแพร่แล้ว) คุณจะใช้ไคลเอ็นต์นั้นเพื่อทดสอบ Home API ได้โดยไม่ต้องตั้งค่าไคลเอ็นต์ใหม่ ดูข้อมูลเพิ่มเติมได้ที่หากคุณมีไคลเอ็นต์ OAuth อยู่แล้ว

ลงนามแอป

ก่อนอื่น ให้สร้างใบรับรองการแก้ไขข้อบกพร่องโดยการเรียกใช้แอปใน Android Studio เมื่อคุณเรียกใช้หรือแก้ไขข้อบกพร่องของแอปใน Android Studio ระบบจะสร้างใบรับรองการแก้ไขข้อบกพร่องโดยอัตโนมัติซึ่งมีไว้สำหรับการพัฒนาและการแก้ไขข้อบกพร่อง ดูคำอธิบายแบบเต็มได้ที่ Android Studio: ลงนามในบิลด์ การแก้ไขข้อบกพร่อง

เมื่อแอปทำงานแล้ว ให้ทำดังนี้

  1. เชื่อมต่ออุปกรณ์เคลื่อนที่กับเครื่องในพื้นที่ Android Studio จะแสดง อุปกรณ์ที่เชื่อมต่อตามหมายเลขรุ่น เลือกอุปกรณ์จากรายการ แล้วคลิกเรียกใช้โปรเจ็กต์ ซึ่งจะสร้างและติดตั้งแอปตัวอย่างใน อุปกรณ์เคลื่อนที่

    ดูวิธีการโดยละเอียดได้ที่เรียกใช้แอปในอุปกรณ์ฮาร์ดแวร์ ในเว็บไซต์ของนักพัฒนาแอป Android

  2. หยุดแอปที่ทำงานอยู่

  3. รับลายนิ้วมือ SHA-1 ของใบรับรองการแก้ไขข้อบกพร่องโดยทำตามวิธีการ ที่ระบุไว้ในการตั้งค่า OAuth 2.0 / แอปพลิเคชันเนทีฟ / Android ในเว็บไซต์ความช่วยเหลือของ Google Cloud Console

  1. ในคอนโซล Google Cloud ให้ไปที่แดชบอร์ดตัวเลือกโครงการ และเลือกโครงการที่คุณต้องการใช้เพื่อสร้างข้อมูลประจำตัว OAuth
  2. ไปที่หน้า API และบริการ แล้วคลิกข้อมูลรับรองในเมนูการนำทาง
  3. หากยังไม่ได้กำหนดค่าหน้าจอขอความยินยอมสำหรับโปรเจ็กต์ Google Cloud นี้ ปุ่มกำหนดค่าหน้าจอขอความยินยอมจะปรากฏขึ้น ในกรณีนี้ ให้กำหนดค่าหน้าจอขอความยินยอมโดยใช้ขั้นตอนต่อไปนี้ มิฉะนั้นให้ไปยังส่วนถัดไป

    1. คลิกกำหนดค่าหน้าจอความยินยอม หน้าหน้าจอยินยอม OAuth จะแสดงขึ้น
    2. เลือกภายในหรือภายนอกตามกรณีการใช้งานของคุณ แล้วคลิกสร้าง บานหน้าต่างหน้าจอยินยอม OAuth จะแสดงขึ้น
    3. ป้อนข้อมูลในหน้าข้อมูลแอปตามวิธีการบนหน้าจอ แล้วคลิกบันทึกและดำเนินการต่อ บานหน้าต่างขอบเขตจะแสดงขึ้น
    4. คุณไม่จำเป็นต้องเพิ่มขอบเขตใดๆ จึงคลิกบันทึกและดำเนินการต่อได้เลย แผงผู้ใช้ทดสอบจะปรากฏขึ้น
    5. คลิกผู้ชม และคลิกปุ่ม + เพิ่มผู้ใช้
    6. ป้อนที่อยู่อีเมลผู้ใช้ทดสอบของคุณแล้วคลิกปุ่มบันทึก
    7. คลิกบันทึกและต่อไป บานหน้าต่างสรุปจะแสดงขึ้น
    8. ตรวจสอบข้อมูลหน้าจอขอความยินยอม OAuth แล้วคลิกกลับไปที่ แดชบอร์ด

ดูการตั้งค่าหน้าจอยินยอม OAuth ของคุณบนไซต์วิธีใช้ Google Cloud Console เพื่อดูรายละเอียดเพิ่มเติม

ลงทะเบียนแอปและสร้างข้อมูลเข้าสู่ระบบ

หากต้องการลงทะเบียนแอปสำหรับ OAuth 2.0 และสร้างข้อมูลเข้าสู่ระบบ OAuth ให้ทำตาม วิธีการที่ระบุไว้ใน การตั้งค่า OAuth 2.0 คุณจะต้องระบุประเภทแอป ซึ่งก็คือแอปเนทีฟ/Android

เพิ่มลายนิ้วมือ SHA-1 ที่คุณได้รับจากการลงนามในแอปไปยัง ไคลเอ็นต์ OAuth ที่คุณตั้งค่าไว้ใน Google Cloud Console โดยทำตาม วิธีการใน การตั้งค่า OAuth 2.0 / แอปพลิเคชันเนทีฟ ในเว็บไซต์ความช่วยเหลือของ Google Cloud Console

เมื่ออุปกรณ์เคลื่อนที่เชื่อมต่อกับเครื่องในพื้นที่แล้ว ให้เลือกอุปกรณ์จากรายการ แล้วคลิกเรียกใช้โปรเจ็กต์อีกครั้งเพื่อเรียกใช้ สำหรับคำแนะนำโดยละเอียดเพิ่มเติม โปรดดูที่การเรียกใช้แอปบนอุปกรณ์ฮาร์ดแวร์บนไซต์นักพัฒนา Android

หากคุณมีไคลเอ็นต์ OAuth อยู่แล้ว

หากคุณมีไคลเอ็นต์ OAuth ที่ยืนยันแล้วสำหรับแอปที่เผยแพร่ คุณสามารถใช้ไคลเอ็นต์ OAuth ที่มีอยู่เพื่อทดสอบ Home API ได้

Google Home Developer Console ไม่จำเป็นต้องลงทะเบียนเพื่อทดสอบและใช้ Home API อย่างไรก็ตาม คุณยังต้องได้รับอนุมัติการลงทะเบียน Developer Console เพื่อเผยแพร่แอปของคุณ แม้ว่าคุณจะมีไคลเอนต์ OAuth ที่ผ่านการตรวจสอบจากการรวมอื่นก็ตาม

โปรดพิจารณาสิ่งต่อไปนี้

  • เมื่อใช้ไคลเอ็นต์ OAuth ที่มีอยู่ ระบบจะจำกัดผู้ใช้ไว้ที่ 100 คน ดูข้อมูลเกี่ยวกับการเพิ่มผู้ใช้ทดสอบได้ที่ ตั้งค่าหน้าจอขอความยินยอม OAuthนอกเหนือจากการตรวจสอบ OAuth แล้ว ยังมีข้อจำกัดของ Home API ที่กำหนดว่าสามารถให้สิทธิ์แก่แอปพลิเคชันของคุณได้ที่ 100 ราย ข้อจำกัดนี้จะถูกยกเลิกเมื่อการลงทะเบียน Developer Console เสร็จสมบูรณ์

  • Developer Console การลงทะเบียน ควร ส่งเพื่อขออนุมัติเมื่อคุณพร้อมที่จะจำกัดการให้สิทธิ์ประเภทอุปกรณ์ ผ่าน OAuth เพื่อเตรียมพร้อมสำหรับการอัปเดตแอปด้วย Home API

สำหรับแอป Google Cloud ที่ยังรอการยืนยัน OAuth ผู้ใช้ไม่สามารถดำเนินการ OAuth ให้เสร็จสมบูรณ์ได้จนกว่าการยืนยันจะเสร็จสิ้น ความพยายามในการให้สิทธิ์จะล้มเหลวโดยมีข้อผิดพลาดต่อไปนี้:

Access blocked: <Project Name> has not completed the Google verification process.