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

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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

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

Assistant ใช้กล่องโต้ตอบเพื่อออกภารกิจ แต่หากคุณใช้ Assistant ในแพลตฟอร์มที่ไม่ใช่เสียง ระบบจะป้อน 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จําเป็นต้องใช้กับสถานะลักษณะเฉพาะ

การตรวจสอบสิทธิ์การรับทราบผู้ใช้รองที่ใช้สถานะสําหรับลักษณะเฉพาะได้ ตัวอย่างเช่น หากคุณทํางานด้วยลักษณะเฉพาะของ TemperatureSettings และได้ตั้งค่าทั้ง 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 - ตกลง

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