ทั่วไป
ถาม: เราควรติดตั้งใช้งานโครงสร้างพื้นฐานด้านการดำเนินการตามคำสั่งซื้อสำหรับ Actions on Google ในภาษาใดและเป็นภาษาใด
ตอบ: ตราบใดที่ระบบรองรับ SSL (TLS) และ OAuth 2.0 สมัยใหม่ คุณก็สามารถนำโครงสร้างพื้นฐานไปใช้บนแพลตฟอร์มใดก็ได้และเป็นภาษาใดก็ได้ที่เลือก เราขอแนะนำให้คุณติดตั้งใช้งานกับโครงสร้างพื้นฐานที่เหลือให้มากที่สุดเท่าที่จะเป็นไปได้ เพื่อเพิ่มความเสถียรและลดเวลาในการตอบสนองสำหรับการดำเนินการในอุปกรณ์ของผู้ใช้จริง
ถาม: รหัสอุปกรณ์ต้องไม่ซ้ำกันใช่ไหม
ตอบ: รหัสต้องไม่ซ้ำกัน หากคุณไม่มีรหัสที่ไม่ซ้ำกันในบริการของคุณ รหัสนั้นจะต้องไม่ซ้ำกันในระดับต่อผู้ใช้เป็นอย่างน้อย สมมติว่าผู้ใช้คนหนึ่งมีบ้านหลายหลัง โดยบ้านทั้ง 2 หลังมีการผสานรวมกับผู้ใช้รายเดียวกัน การขอให้เปิดไฟในบ้านหนึ่งหลังไม่ควรเปิดไฟที่มีรหัสเดียวกันในบ้านอีกหลังหนึ่ง
ถาม: ชื่ออุปกรณ์ต้องไม่ซ้ำกันหรือไม่
ตอบ: ชื่อไม่จำเป็นต้องซ้ำกัน แม้ว่าเมื่อเวลาผ่านไปเราอาจส่งเสริมให้ผู้คนปรับปรุงการตั้งชื่อที่ไม่ดีหลังจากตั้งค่าแล้ว เพื่อให้ผู้ใช้ได้รับประสบการณ์ที่ดีขึ้น
คำแนะนำในการตั้งชื่อสั้นๆ มีดังนี้
- ชื่อควรเป็นสิ่งที่ผู้คนพูดได้จริงๆ
- เรารับรู้ชุดย่อยของสตริง ดังนั้น หากคุณมี "ไฟสี Acme" เราก็จะตอบว่า "หลอดไฟ Acme" เช่นกัน
- เราขอแนะนำให้ใช้ทั้งชื่อที่สื่อความหมายสำหรับผลิตภัณฑ์และชื่อที่ผู้ใช้กำหนดอย่างน้อย 1 ชื่อ
- ผู้ใช้ไม่จำเป็นต้องตั้งชื่อห้องให้หลอดไฟเพราะเรามีห้องไว้ให้ใช้งาน ควรมีชื่อที่ไม่ซ้ำกันสำหรับห้องแต่ละห้อง แต่ใช้รูปพหูพจน์ได้ เพื่อบอกคำสั่งทุกอย่าง (เช่น หลอดไฟ 2 ดวงในเชิงก่อกวนของออฟฟิศเป็น "แสงเหนือ" และ "แสงตะวันออก" แต่จะใช้คำสั่งแทนได้แค่ "หลอดไฟ")
คำถาม: สถานะของอุปกรณ์ได้รับการอัปเดตบ่อยเพียงใด
ตอบ: สถานะชั่วคราวจะดึงข้อมูลจาก QUERY หรือ EXECUTE ซึ่งเป็นการดำเนินการที่ผู้ใช้เป็นผู้เริ่ม หากผู้ใช้ถามว่า "ไฟเปิดอยู่ไหม" หรือต้องการ เพิ่มความสว่าง เราต้องทำการค้นหาเพื่อดูสถานะปัจจุบัน
คำถาม: เป็นไปได้ไหมที่จะอัปเดต Home Graph โดยตรงด้วยสถานะปัจจุบันของอุปกรณ์
ตอบ: ใช่ ใช้การเรียก API Report State
การลิงก์บัญชีและ OAuth
ถาม: เราจําเป็นต้องลิงก์บัญชีไหม
ตอบ: ใช่ ต้องลิงก์บัญชีเพื่อเชื่อมต่ออุปกรณ์ของผู้ใช้กับบริการระบบคลาวด์ของผู้ให้บริการ
ถาม: สำหรับ OAuth เราจะหมดอายุโทเค็นเพื่อการเข้าถึงทุกๆ 15.213 ชั่วโมงได้ไหม
ตอบ: ได้ แต่โปรดทดสอบวันหมดอายุที่ค่อนข้างสั้น เช่น 10-20 นาที ไคลเอ็นต์ OAuth ควรรีเฟรชโทเค็นตามความจำเป็น และการทดสอบที่มีเวลาหมดอายุสั้นๆ จะพิสูจน์ว่าใช้งานได้
ความตั้งใจ
ถาม: การซิงค์จะเกิดขึ้นเมื่อใด
ตอบ: การซิงค์จะเกิดขึ้นทันทีหลังจาก OAuth เสร็จสมบูรณ์ และหลังจากเรียกใช้ขอการซิงค์
ถาม: ทำไม SYNC
จึงไม่ทำงาน
ตอบ: มีสาเหตุที่พบบ่อยหลายประการที่ทำให้การดำเนินการนี้ล้มเหลว
คุณส่งอุปกรณ์ผิดประเภท
- ตัวอย่างเช่น เราคาดว่าจะได้รับ
action.devices.types.LIGHT
แต่คุณส่งaction.devices.types.Light
- ตัวอย่างเช่น เราคาดว่าจะได้รับ
คุณกำลังส่งประเภทอุปกรณ์ที่ไม่รองรับ
- ตัวอย่างเช่น คุณส่ง
action.devices.types.FLASHLIGHT
ซึ่งไม่ได้รับการสนับสนุนจากเรา
- ตัวอย่างเช่น คุณส่ง
คุณกำลังส่งช่องที่ไม่ถูกต้อง/ไม่รองรับ
- เช่น คุณมีช่องเวอร์ชันหรือช่องอื่นๆ ที่ไม่อยู่ในข้อกำหนดของเรา
เกิดปัญหาด้านการจัดรูปแบบอื่นๆ ในการตอบสนอง SYNC ของคุณ
- โปรดตรวจสอบวงเล็บ
คุณพบปัญหาการลิงก์บัญชี
- โปรดยืนยันว่าคุณได้รับโทเค็นเพื่อการเข้าถึงที่ถูกต้องในส่วนหัวการตรวจสอบสิทธิ์ของคำขอ SYNC
คุณใช้เวลาตอบกลับคำขอ SYNC นานเกินไป
- โปรดยืนยันว่าคุณกำลังตอบกลับคำขอ SYNC ภายใน 5 วินาที
ถาม: คำตอบ "รอดำเนินการ" ตกลงไหม
ตอบ: ขอแนะนำว่าการตอบกลับว่าสำเร็จ/ล้มเหลวไม่ใช่การรอดำเนินการ หากอุปกรณ์ของคุณพร้อมใช้งานแบบเรียลไทม์ โปรดติดต่อเราหากคุณต้องการการตอบกลับที่ "รอดำเนินการ" เราตระหนักดีว่าอุปกรณ์ที่ไม่ใช่แบบเรียลไทม์บางประเภทอาจจำเป็นต้องใช้การตอบกลับที่รอดำเนินการและโมเดลการดำเนินการแบบไม่พร้อมกัน
การทดสอบและการส่ง
ถาม: เราตั้งค่าสภาพแวดล้อมการทดลองใช้ได้ไหม
ตอบ: ได้ โปรดสร้างโปรเจ็กต์แยกต่างหากและดำเนินการตั้งค่าสำหรับโปรเจ็กต์ดังกล่าว คุณสามารถสร้างโปรเจ็กต์ได้มากเท่าที่ต้องการเพื่อแมปกับกระบวนการพัฒนาและโครงสร้างพื้นฐาน
ถาม: ฉันต้องอัปเดตโปรเจ็กต์ฉบับร่างบ่อยเพียงใด
ตอบ: ต้องรีเฟรชโปรเจ็กต์ฉบับร่างทุกๆ 3 วัน หลังจากผ่านไป 3 วัน ตัวแทนทดสอบ จะหายไปจากการตั้งค่า Mobile-HomeControl หากพบปัญหานี้ ให้คลิกปุ่มทดสอบฉบับร่างของโปรเจ็กต์ใน Actions on Google Console
ถาม: ฉันจะทดสอบในอุปกรณ์มากกว่า 1 เครื่องพร้อมกันได้ไหม
ตอบ: Actions on Google รองรับ AP แบบ "ลองในอุปกรณ์" เพียงครั้งเดียวเท่านั้น หากใช้ฉบับร่างทดสอบใน "ap1" และซิงค์อุปกรณ์เป็นครั้งแรก (โดยไม่ยกเลิกการลิงก์ ap1) ให้เรียกใช้ฉบับร่างทดสอบ "ap2" โดยตรง "ap1" จะหายไปจาก "mobile-HomeControl-settings" ในการแก้ไขปัญหานี้ ให้เรียกใช้ทดสอบฉบับร่างใน "ap1" อีกครั้ง แล้วยกเลิกการลิงก์ "ap1" ในการตั้งค่า
โปรดทราบว่าแพ็กเกจการดำเนินการเดียวนี้จะพร้อมใช้งานสำหรับอุปกรณ์ Google Assistant ทั้งหมดของคุณ เช่น คุณสามารถทดสอบการผสานรวมฮาร์ดแวร์ใหม่กับทั้งลำโพงที่สั่งงานด้วยเสียงและ Android
ถาม: ระบบปฏิเสธโครงการการดำเนินการของฉันเนื่องจากชื่อหรือการออกเสียง ฉันจำเป็นต้องเปลี่ยนแปลงอะไรบ้าง
ตอบ: เราจะตรวจสอบการออกเสียงชื่อเพื่อให้แน่ใจว่าการดำเนินการอื่นในอนาคตไม่ได้ใช้การออกเสียงชื่อดังกล่าว และตรงกับชื่อที่แสดง (เพื่อป้องกันข้อมูลที่ไม่ตรงกันซึ่งจะส่งผลต่อการจดทะเบียนชื่อในอนาคต)
หากต้องการใช้ชื่อเดียวกันต่อไป โปรดติดต่อทีมสนับสนุนเพื่อให้ทีมเสียงพูดเพิ่มชื่อที่แสดงใน Assistant
คำถาม: การดำเนินการของฉันไม่ปรากฏในส่วนระบบควบคุมอุปกรณ์ในบ้านของแอป Google Home เกิดอะไรขึ้น
ตอบ: ปัญหาอาจเกิดจากสาเหตุใดสาเหตุหนึ่งต่อไปนี้
- คุณไม่ได้คลิกปุ่มทดสอบฉบับร่างของโปรเจ็กต์ใน Actions Console
- คุณมีการดำเนินการในการทดสอบบนอุปกรณ์ได้ครั้งละ 1 รายการเท่านั้น
- ใน Actions Console ให้ไปที่แท็บเครื่องจำลองของโปรเจ็กต์การดำเนินการ และสลับปุ่มเปิด/ปิด "ใช้งานอยู่/ไม่ได้ใช้งาน" เป็น "ไม่ได้ใช้งาน" จากนั้น "ใช้งานอยู่" อีกครั้ง
- หากเป็นการดำเนินการที่แชร์กับคุณ โปรดตรวจสอบว่าได้ปฏิบัติตามวิธีการแชร์ทั้งหมดแล้ว
- การทดสอบในอุปกรณ์จะหมดอายุหลังจากผ่านไป 3 วัน คลิกปุ่มทดสอบฉบับร่างสำหรับโปรเจ็กต์ใน Actions Console
ถาม: ทำไมฉันถึงแสดงข้อผิดพลาดเมื่อฉันพิมพ์ "พูดกับ <my agent name>
" ในเครื่องจำลอง
ตอบ: การดำเนินการในบ้านอัจฉริยะจะไม่ใช้ชื่อสำหรับเรียกใช้ หากต้องการทดสอบในเครื่องมือจำลอง คุณต้องทำตามขั้นตอนการลิงก์บัญชีในโทรศัพท์ Android หรือ iOS ที่ติดตั้ง Google Home app (GHA) นอกจากนี้ คุณยังต้องมีอุปกรณ์ที่เชื่อมโยงกับบัญชีก่อนที่จะเรียกใช้การลิงก์บัญชี
คำถาม: ทำไมฉันจึงพบข้อผิดพลาดเมื่อพยายามใช้เครื่องจำลอง
ตอบ: คุณใช้เครื่องจำลองเพื่อทดสอบการดำเนินการ smart home ที่ทำให้ใช้งานได้แล้วไม่ได้ หากต้องการใช้เครื่องจำลองสำหรับโครงการระบบอัตโนมัติในบ้านที่อยู่ระหว่างการใช้งานจริง คุณต้องสร้างโปรเจ็กต์ใหม่เพื่อใช้ในการทดสอบ
สถานะรายงาน
ถาม: มีข้อกําหนดเบื้องต้นสําหรับการใช้งานสถานะรายงานไหม
ตอบ: โปรเจ็กต์ต้องใช้ Smart Home API ซึ่งรองรับ OAuth2 และต้องมีลักษณะซึ่งมีสถานะที่จะรายงาน
ถาม: เราจำเป็นต้องรายงานสถานะในอุปกรณ์บ่อยแค่ไหน
ตอบ: Google สนใจการเปลี่ยนรุ่นและสถานะเทอร์มินัล อย่างไรก็ตาม หากมีการเปลี่ยนแปลงสถานะหลายอย่างในระยะเวลาสั้นๆ (เช่น ผู้ใช้เปิดและปิดตู้เย็น 3 ครั้งใน 1 นาที หรือปิดสวิตช์หรี่ไฟ) เราก็ต้องรายงานสถานะสุดท้ายเท่านั้น
ถาม: จำเป็นต้องส่งสถานะของอุปกรณ์แบบเต็มเมื่อเรียกใช้สถานะรายงานไหม
ตอบ: ไม่รองรับการอัปเดตสถานะบางส่วน ดังนั้นการเรียกใช้ Report State จึงควรรวมข้อมูลทั้งหมดสำหรับลักษณะเฉพาะหนึ่งๆ ที่มีการอัปเดตเสมอ หากลักษณะ 2 อย่างที่ก่อให้เกิดความไม่สอดคล้องกัน ควรรายงานกลับกัน
ถาม: Google จะสอบถามอุปกรณ์ของฉันเพื่อดูสถานะ (ซึ่งก็คือ สำรวจอุปกรณ์) ได้ไหม
ตอบ: นี่เป็นกลไกสำรองที่เราไม่แนะนำ หากเราต้องถอยหลังกลับไปตรวจสอบอุปกรณ์บ่อยๆ สำหรับผู้ใช้เหล่านั้น เราก็ไม่อาจรับประกันได้ว่าจะมีภาระงานเพิ่มเติมเท่าใด แต่ความต้องการนี้มาจากแพลตฟอร์มรูปลักษณ์ใหม่ นอกเหนือจากปัญหาโหลดที่ไม่รู้จักแล้ว จะทำให้ประสบการณ์ของผู้ใช้แย่ลง เรารู้สึกว่า Report State สำคัญต่อแพลตฟอร์มนี้
ถาม: ขณะนี้คุณลักษณะใดสนับสนุนสถานะรายงานบ้าง
ตอบ: ระบบจะรองรับลักษณะสาธารณะทั้งหมดที่เกี่ยวข้องกับรัฐ คุณควรรายงานการเปลี่ยนแปลงสถานะออนไลน์ของอุปกรณ์ด้วย
โปรดทราบว่าฉากจะไม่มีสถานะ แต่ก็อาจส่งผลให้สถานะของอุปกรณ์เปลี่ยนไปได้ หากอุปกรณ์ใน Google Home Graph มีสถานะเปลี่ยนแปลง คุณต้องรายงานกลับมา
ถาม: สถานะรายงานกำหนดให้ส่งการประทับเวลาไหม
ตอบ: เราไม่ได้ต้องการการประทับเวลา สถานะล่าสุดที่ส่งจะลบล้างการโทรก่อนหน้า
ถาม: ฉันต้องรายงานสถานะแยกต่างหากไหม หากฉันส่งสถานะในการค้นหาและ/หรือสั่งการแล้ว
ตอบ: Home Graph จัดเก็บเฉพาะรัฐที่ส่งผ่าน Report State เท่านั้น สถานะที่ส่งคืนเป็นการตอบกลับไปยัง Intent EXECUTE และ QUERY จะใช้สำหรับการตอบสนองด้วยเสียงของผู้ใช้เท่านั้นและจะไม่มีการจัดเก็บ ด้วยเหตุนี้ จึงควรเรียกใช้ Report State แม้ว่าจะมีการส่งคืนสถานะใหม่ของอุปกรณ์เป็นการตอบกลับสำหรับ Intent EXECUTE หรือ QUERY แล้ว
ถาม: การใช้สถานะรายงานไม่สมบูรณ์ภายในกำหนดเวลาที่ระบุจะมีผลอย่างไร
ตอบ: การดำเนินการนี้อาจส่งผลให้ประสบการณ์ของผู้ใช้แย่ลง เช่น ใน GHA และแพลตฟอร์มภาพ ซึ่งหมายความว่าจะมีการส่ง Intent ของ QUERY จำนวนมากไปยังแบบสำรวจสำหรับสถานะ และเรารับประกันไม่ได้ว่าจะตอบสนองต่อภาระงานเพิ่มเติมบนระบบคลาวด์ของพาร์ทเนอร์อย่างไร
ถาม: ฉันจะทดสอบการใช้งานสถานะรายงานได้อย่างไร
ตอบ: ใช้โปรแกรมดู Home Graph ซึ่งเป็นเครื่องมือทดสอบแบบบริการตนเองที่จะแสดงสถานะอุปกรณ์ในปัจจุบันที่จัดเก็บไว้ใน Home Graph
ถาม: เราจะใช้ requestId แบบสุ่มสำหรับสถานะรายงานได้ไหม
ตอบ: เราขอแนะนำให้พาร์ทเนอร์ใช้ requestId เดียวกันกับที่ได้รับจากคำขอ "ดำเนินการ" หาก Report State เรียกใช้โดยคำขอ "EXECUTE" หรือคุณอาจใช้ requestId แบบสุ่มก็ได้
ถาม: หากผู้ใช้มีอุปกรณ์หลายเครื่องและหนึ่งในนั้นได้รับสถานะ เราต้องรายงานสถานะล่าสุดของอุปกรณ์ทั้งหมดไหม
ตอบ: ไม่ได้ คุณต้องรายงานสถานะของอุปกรณ์ที่เจาะจงเท่านั้น
แนวทางปฏิบัติแนะนำ
ถาม: เวลาในการตอบสนองประเภทใดที่ยอมรับได้
ตอบ: ควรน้อยกว่า 200 มิลลิวินาที ระหว่าง 2-5 วินาทีถือว่าเหมาะสม หากเวลาในการตอบสนองนานกว่า 5 วินาที โปรดติดต่อเรา
คำถาม: ฉันจะทำให้ลำโพงที่สั่งงานด้วยเสียงตอบสนองอย่างเหมาะสมได้อย่างไรเมื่อออฟไลน์
ตอบ: เปลี่ยนสถานะออฟไลน์สำหรับอุปกรณ์ที่ออฟไลน์ เราจะแสดงผล "ไม่พร้อมใช้งานในขณะนี้" เป็น TTS สำหรับข้อผิดพลาดนี้ ดูข้อมูลเพิ่มเติมได้ที่ข้อผิดพลาดและข้อยกเว้น