ตั้งค่า 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

  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 APIs ยังกำหนด ขีดจำกัดผู้ใช้ที่อนุญาตให้สิทธิ์แก่แอปพลิเคชันของคุณไว้ที่ 100 คน การจำกัดนี้จะถูกยกเลิกเมื่อ ลงทะเบียน Developer Console เสร็จสมบูรณ์

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

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

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