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

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

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

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

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

Google Assistant จะใช้กล่องโต้ตอบในการตอบคําถาม แต่หากคุณใช้ Google Assistant ในแพลตฟอร์มที่ไม่ใช่การใช้เสียง ระบบจะทํา PIN และการยืนยันบนหน้าจอ

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

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

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

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

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

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

  • ไม่มีคําถาม - คําขอและการตอบกลับที่ไม่ได้ใช้คําถามการยืนยันผู้ใช้สํารอง
  • ackNeeded - การยืนยันผู้ใช้รองที่ต้องมีการตอบรับอย่างชัดแจ้ง (yes หรือ no) และยังใช้คําระบุสถานะเป็นการตอบกลับได้ เราไม่แนะนําให้ใช้อุปกรณ์และประเภทของการรักษาความปลอดภัยแบบนี้
  • 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"
    }]
  }
}

ยอมรับสถานะลักษณะเฉพาะ

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

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

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

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

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