ยินดีต้อนรับสู่ศูนย์นักพัฒนาซอฟต์แวร์ Google Home ซึ่งเป็นจุดหมายใหม่เกี่ยวกับวิธีพัฒนาการดําเนินการสําหรับบ้านอัจฉริยะ หมายเหตุ: คุณจะสร้างการดําเนินการต่างๆ ต่อไปในคอนโซลการดําเนินการ

การยืนยันผู้ใช้สํารอง

การยืนยันผู้ใช้สํารองช่วยให้คุณเพิ่มความปลอดภัยในปัจจัยที่ 2 ลงในคําสั่งด้วยเสียงได้ วิธีนี้จะช่วยให้คุณเพิ่มความปลอดภัยสําหรับการดําเนินการบางอย่าง เช่น การปิดกล้องรักษาความปลอดภัยหรือการเปิดประตูได้ การยืนยันผู้ใช้รองไม่ได้ผูกกับลักษณะเฉพาะของอุปกรณ์ ซึ่งทําให้คุณตัดสินใจได้ว่าจะGoogle Assistant รับคําท้าเมื่อใด ตัวอย่างเช่น คุณสามารถเลือกที่จะแข่งขันด้วยลักษณะเฉพาะของ OnOff สําหรับกล้องวงจรปิด แต่จะไม่ออกการทดสอบสําหรับลักษณะเฉพาะของ OnOff สําหรับแสงแบบหนึ่งๆ คุณยังอาจลองตอบคําถาม Assistant ข้อในสถานการณ์บางอย่างได้ ตัวอย่างเช่น คุณขอให้ Assistant ออกคําขอเปิดประตูได้ หากคีย์ NFC ไม่ได้อยู่ในระยะใกล้ของประตูนั้น แต่ไม่ต้องเป็นผู้ออก หากเกิดปัญหา

Assistant มีคําถาม 2 ประเภท ได้แก่ การรับทราบอย่างชัดเจนหรือหมายเลขประจําตัวส่วนบุคคล (PIN) การดําเนินการนี้จะเพิ่มการบล็อกภารกิจไปยัง QUERY และ Intent ของ EXECUTE ที่ส่งจาก Assistant กลับไปยังการดําเนินการ และยอมรับการตอบสนองข้อผิดพลาด challengeNeeded จากนั้น Assistant จะส่งคําขอ Intent กลับมา พร้อมกับข้อมูลภารกิจในบล็อกทดสอบ จากนั้นคุณสามารถตรวจสอบข้อมูลคําถามเพื่อพิจารณาว่าผู้ใช้มีการตอบกลับเกี่ยวกับความปลอดภัยที่ถูกต้องหรือไม่

Assistant จะใช้กล่องโต้ตอบเพื่อออกตัวทดสอบ แต่ถ้าคุณใช้ Assistant บนพื้นผิวที่ไม่ใช่ Voice จะมีการใช้ PIN และการยืนยันบนหน้าจอ

ประเภทอุปกรณ์ที่สนับสนุน

การยืนยันผู้ใช้รองสามารถใช้ได้กับอุปกรณ์ทุกประเภท

ลักษณะเฉพาะของอุปกรณ์ที่รองรับ

รองรับการยืนยันผู้ใช้รองสําหรับลักษณะอุปกรณ์ทั้งหมดแล้ว

ประเภทคําท้าที่รองรับ

ประเภทของการยืนยันตัวตนเพื่อยืนยันผู้ใช้รองที่รองรับมีดังนี้

  • ไม่มีคําถามสําหรับทดสอบ - คําขอและคําตอบที่ไม่ใช้คํายืนยันจากการยืนยันผู้ใช้รอง
  • ackNeeded - การยืนยันผู้ใช้รองที่ต้องมีการตอบรับที่ชัดเจน (มีหรือไม่มี) และยังใช้สถานะลักษณะเฉพาะเป็นคําตอบได้ด้วย ไม่แนะนําให้ท้าประเภทนี้กับอุปกรณ์และลักษณะด้านความปลอดภัย
  • pinNeeded - การยืนยันผู้ใช้รองที่ต้องมีหมายเลขประจําตัวส่วนบุคคล (PIN) ซึ่งเหมาะสําหรับอุปกรณ์รักษาความปลอดภัยและลักษณะเฉพาะ

ไม่มีคําท้า

ตัวอย่างนี้แสดงคําขอและการตอบกลับ EXECUTE ที่สําเร็จโดยไม่มีคําถามสําหรับการเปิดไฟ

ผู้ใช้ เปิดไฟ
Google Assistant โอเค กําลังเปิดไฟ 3 ดวง
คําขอ
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.OnOff",
          "params": {
            "on": true
          }
        }]
      }]
    }
  }]
}
คําตอบ
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true
      }
    }]
  }
}

จําเป็นต้องตอบรับ

การตรวจสอบสิทธิ์แบบรับรองผู้ใช้รองซึ่งสามารถใช้ หลายสถานะสําหรับการตรวจสอบสิทธิ์แบบอย่างใดอย่างหนึ่งหรือแบบง่าย

คําท้ามี ackNeeded ประเภทดังต่อไปนี้

ใส่ง่ายๆ

ตัวอย่างนี้แสดงคําขอและการตอบสนองแบบง่ายที่มีคําถาม ackNeeded เพื่อหรี่ไฟและการยืนยันเพื่อหรี่ไฟ

ผู้ใช้ หรี่ไฟห้องนั่งเล่นหน่อย
Google Assistant กําลังหรี่ไฟห้องนั่งเล่น แน่ใจใช่ไหม
ผู้ใช้ ได้
Google Assistant กําลังหรี่ไฟห้องนั่งเล่น
คําขอ 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.BrightnessAbsolute",
          "params": {
            "brightness": 12
          }
        }]
      }]
    }
  }]
}
คําตอบที่ 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
คําขอ 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.BrightnessAbsolute",
          "params": {
            "brightness": 12
          },
          "challenge": {
            "ack": true
          }
        }]
      }]
    }
  }]
}
คําตอบที่ 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS"
    }]
  }
}

ackต้องการพร้อมกับสถานะลักษณะเฉพาะ

การตรวจสอบสิทธิ์ผู้ใช้ที่รับทราบแล้วรองสามารถใช้สถานะสําหรับลักษณะได้ ตัวอย่างเช่น ถ้าคุณทํางานกับลักษณะเฉพาะของ TemperatureSetting และทั้ง thermostatMode และ thermostatTemperatureSetpoint ถูกตั้งค่าไว้ Assistant สามารถถาม คุณแน่ใจหรือไม่ว่าต้องการตั้งค่าความร้อนเป็นเครื่องปรับอากาศเป็น 28 องศา

คุณรวมรัฐไว้ในการตอบกลับเพื่อให้ Assistant ดําเนินการที่เจาะจงตามคําขอที่ให้ไว้ได้ด้วย

สถานะและลักษณะต่อไปนี้รองรับ ackNeeded กับสถานะ ข้อมูลลักษณะที่เจาะจงแสดงให้เห็นว่ารัฐทุกแห่งได้รับการสนับสนุน

ตัวอย่างนี้แสดงคําขอและการตอบกลับที่มีคําถาม ackNeeded ซึ่งใช้สถานะลักษณะเฉพาะ เปลี่ยนโหมดปรับอากาศเป็นโหมดทําความร้อน และตั้งอุณหภูมิเป็น 28 องศา จากนั้น Assistant จะขอให้ผู้ใช้รับทราบเพื่อเปิดใช้การทําความร้อนและตั้งค่าอุณหภูมิเป็น 28 องศาเนื่องจากการส่งคืน thermostatTemperatureSetpoint ของ 28 เป็นสถานะในการตอบสนอง

ผู้ใช้ ตั้งค่าโหมด AC เป็นโหมดทําความร้อน
Google Assistant คุณแน่ใจไหมว่าต้องการตั้งค่าความร้อนสําหรับเครื่องปรับอากาศเป็น 28 องศา
ผู้ใช้ ได้
Google Assistant รายการ กําลังตั้งค่าความร้อนให้เครื่องปรับอากาศเป็น 28 องศา
คําขอ 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.TemperatureSetting",
          "params": {
            "thermostatMode": "heat"
          }
        }]
      }]
    }
  }]
}
คําตอบที่ 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      },
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
คําขอ 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.TemperatureSetting",
          "params": {
            "thermostatMode": "heat"
          },
          "challenge": {
            "ack": true
          }
        }]
      }]
    }
  }]
}
คําตอบที่ 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      }
    }]
  }
}

ต้องใช้ PIN

ขอแนะนําให้ทําภารกิจระดับpinNeededสําหรับอุปกรณ์ความปลอดภัย

ตัวอย่างนี้แสดงคําขอและการตอบเริ่มต้นพร้อมคําถาม pinNeeded ตัวอย่างนี้แสดงการตอบกลับที่มีโจทย์ pinNeeded ดังนั้น Assistant จึงขอ PIN ในจุดนี้ ผู้ใช้สามารถ ระบุ PIN ที่ไม่ถูกต้องหรือใช้งานได้

ตัวอย่างคําขอและการตอบกลับสําหรับ PIN ที่ไม่ถูกต้องหรือไม่ถูกต้อง

ผู้ใช้ ปลดล็อกประตู
Google Assistant ขอทราบรหัสความปลอดภัยหน่อยได้ไหม
คําขอ
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.LockUnlock",
          "params": {
            "lock": false
          }
        }]
      }]
    }
  }]
}
คําตอบ
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

PIN ไม่ถูกต้อง

ตัวอย่างนี้แสดงคําขอและการตอบกลับที่มีคําถาม challengeFailedPinNeeded ควรใช้คําท้านี้หลังจากคําท้า pinNeeded แรกล้มเหลว

เมื่อมีการส่งประเภท challengeFailedPinNeeded กลับมา Assistant จะขอรหัสความปลอดภัยอีกครั้ง หากผู้ใช้พยายามล้มเหลวหลายครั้งเกินไป คุณสามารถส่งข้อผิดพลาด tooManyFailedAttempts ตอบกลับได้ โปรดดูข้อผิดพลาดที่ตอบกลับ

ผู้ใช้ 333222
Google Assistant ขออภัย รหัสความปลอดภัยไม่ถูกต้อง ขอทราบรหัสความปลอดภัยหน่อยได้ไหม
คําขอ
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.LockUnlock",
          "params": {
            "lock": false
          },
          "challenge": {
            "pin": "333222"
          }
        }]
      }]
    }
  }]
}
คําตอบ
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "challengeFailedPinNeeded"
      }
    }]
  }
}

PIN ถูกต้อง

ตัวอย่างนี้แสดงคําขอและการตอบกลับของ PIN ที่ถูกต้อง

ผู้ใช้ 333444
Google Assistant กําลังปลดล็อกประตู
คําขอ
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.LockUnlock",
          "params": {
            "lock": false
          },
          "challenge": {
            "pin": "333444"
          }
        }]
      }]
    }
  }]
}
คําตอบ
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "isLocked": false,
        "isJammed": false
      }
    }]
  }
}
ผู้ใช้ หรี่ไฟห้องนั่งเล่นหน่อย
Google Assistant ขอทราบรหัสความปลอดภัยหน่อยได้ไหม
คําขอ
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123"
        }],
        "execution": [{
          "command": "action.devices.commands.BrightnessAbsolute",
          "params": {
            "brightness": 12
          }
        }]
      }]
    }
  }]
}
คําตอบ
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

การตอบกลับข้อผิดพลาด

รหัสข้อผิดพลาดบางส่วนที่อาจส่งกลับพร้อมคําตอบมีดังนี้

  • challengeFailedNotSetup - การดําเนินการนี้ต้องใช้รหัสความปลอดภัย แต่ยังไม่ได้ตั้งรหัสดังกล่าวในแอปของอุปกรณ์
  • tooManyFailedAttempts - ขออภัย มีการป้อนรหัสผ่านผิดหลายครั้งเกินไป โปรดไปที่แอปของอุปกรณ์เพื่อดําเนินการดังกล่าวให้เสร็จ
  • pinIncorrect - ขออภัย รหัสความปลอดภัยไม่ถูกต้อง
  • userCancelled - ตกลง

ดูรายการข้อผิดพลาดและข้อยกเว้นทั้งหมด