Chào mừng bạn đến với Trung tâm nhà phát triển Google Home, một điểm đến mới để tìm hiểu cách phát triển các hành động nhà thông minh. Lưu ý: Bạn sẽ tiếp tục tạo các hành động trong Bảng điều khiển Actions.

Xác minh người dùng phụ

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Tính năng xác minh người dùng phụ cho phép bạn thêm các yếu tố bảo mật thứ hai vào lệnh thoại. Thao tác này giúp bạn tăng cường bảo mật cho một số thao tác như tắt camera hoặc mở cửa. Tính năng xác minh người dùng phụ không gắn với một đặc điểm cụ thể nào của thiết bị, cho phép bạn quyết định thời điểm có Google Assistant issue a challenge. For example, you can choose to issue a challenge for the OnOff trait for a security camera, but not issue a challenge for the OnOff trait for a light. You can also have Assistant issue challenges in certain situations for the same action. For example, you can request that Assistant issue a challenge request to open a door if an NFC keyfob is not in the proximity of that door, but not issue a challenge if the keyfob is present.

Assistant có thể đưa ra hai loại thử thách – xác nhận rõ ràng hoặc mã số nhận dạng cá nhân (PIN). Thao tác này sẽ thêm một khối xác thực vào ý định QUERYEXECUTE được gửi từ Assistant trở lại thao tác của bạn, đồng thời chấp nhận phản hồi lỗi challengeNeeded. Sau đó, Assistant sẽ gửi lại yêu cầu ý định đến hành động của bạn kèm theo dữ liệu của thử thách trong khối thử thách. Sau đó, bạn có thể xác thực dữ liệu thử thách để xác định xem người dùng đã đưa ra phản hồi bảo mật chính xác hay chưa.

Assistant sử dụng hộp thoại để đưa ra thử thách, nhưng nếu bạn sử dụng Assistant trên các nền tảng không phải giọng nói, thì mã PIN và thông báo xác nhận đã được thực hiện trên màn hình.

Loại thiết bị được hỗ trợ

Xác minh người dùng phụ được hỗ trợ trên tất cả các loại thiết bị.

Các đặc điểm của thiết bị được hỗ trợ

Xác minh người dùng phụ được hỗ trợ cho tất cả các đặc điểm của thiết bị.

Các loại thử thách được hỗ trợ

Sau đây là các loại thử thách xác minh người dùng phụ được hỗ trợ:

  • Không có thách thức – Yêu cầu và phản hồi không sử dụng thử thách xác minh người dùng phụ.
  • ack Cần - Xác minh người dùng phụ yêu cầu xác nhận rõ ràng (có hoặc không) và cũng có thể sử dụng trạng thái tính năng làm phản hồi phản hồi. Loại thử thách này không dành cho các thiết bị và đặc điểm bảo mật.
  • pinneeded - Xác minh người dùng phụ yêu cầu số nhận dạng cá nhân (PIN), lý tưởng cho các thiết bị và đặc điểm bảo mật.

Không có thử thách

Ví dụ này cho thấy một yêu cầu EXECUTE và phản hồi thành công mà không cần thử thách bật đèn.

User Bật đèn.
Google Assistant Được rồi, tôi đang bật 3 đèn.
Yêu cầu
{
  "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
          }
        }]
      }]
    }
  }]
}
Phản hồi
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true
      }
    }]
  }
}

không cần thiết

Quy trình xác thực người dùng phụ có thể sử dụng nhiều trạng thái cho một đặc điểm hoặc một quy trình xác thực đơn giản.

Sau đây là các loại thử thách ackNeeded:

Thiếu đơn giản

Ví dụ này cho thấy một yêu cầu và phản hồi đơn giản với thử thách ackNeeded để giảm độ sáng và xác nhận để giảm độ sáng.

User Trong điều kiện ánh sáng phòng khách, hãy giảm độ sáng.
Google Assistant Tôi đang giảm độ sáng của đèn phòng khách. Bạn có chắc chắn không?
User Có.
Google Assistant Tôi đang giảm độ sáng của đèn phòng khách.
Yêu cầu 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
          }
        }]
      }]
    }
  }]
}
Phản hồi 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
Yêu cầu 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
          }
        }]
      }]
    }
  }]
}
Phản hồi 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS"
    }]
  }
}

Thiếu các trạng thái đặc điểm

Phương thức xác thực người dùng phụ có thể sử dụng trạng thái cho một đặc điểm. Ví dụ: nếu bạn đang làm việc với đặc điểm Nhiệt độ cài đặt và cả thermostatModethermostatTemperatureSetpoint, Assistant có thể hỏi Bạn có chắc chắn muốn đặt hệ thống sưởi trên máy điều hòa không khí ở mức 28 độ không?

Bạn cũng có thể đưa một trạng thái vào phản hồi để yêu cầu Assistant thực hiện một hành động cụ thể dựa trên một yêu cầu nhất định.

Các đặc điểm và trạng thái sau đây hỗ trợ ackNeeded cùng với trạng thái tính năng. Danh sách một đặc điểm cụ thể cho biết rằng tất cả trạng thái của nó đều được hỗ trợ.

Ví dụ này cho thấy một yêu cầu và phản hồi với thử thách ackNeeded sử dụng trạng thái đặc điểm. Nút này thay đổi chế độ điều hoà không khí thành chế độ sưởi ấm và đặt nhiệt độ ở mức 28 độ. Sau đó, Assistant yêu cầu người dùng xác nhận bật nhiệt và đặt nhiệt độ ở 28 độ kể từ khi thermostatTemperatureSetpoint của 28 được trả về dưới dạng trạng thái trong phản hồi.

User Đặt chế độ điều hòa nhiệt độ thành nhiệt.
Google Assistant Bạn có chắc chắn muốn đặt chế độ sưởi ấm trên điều hòa không khí ở mức 28 độ C không?
User Có.
Google Assistant chuẩn Đang đặt chế độ sưởi ấm trên điều hòa ở mức 28 độ.
Yêu cầu 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"
          }
        }]
      }]
    }
  }]
}
Phản hồi 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      },
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
Yêu cầu 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
          }
        }]
      }]
    }
  }]
}
Phản hồi 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      }
    }]
  }
}

cần

Bạn nên sử dụng thử thách pinNeeded cho các thiết bị bảo mật.

Ví dụ này cho thấy một yêu cầu và phản hồi ban đầu với thử thách pinNeeded. Ví dụ này trả về phản hồi có thử thách pinNeeded, vì vậy, Assistant sẽ yêu cầu ghim. Tại thời điểm này, người dùng có thể cung cấp ghim không chính xác hoặc hợp lệ.

Yêu cầu và phản hồi mẫu cho một mã PIN không chính xác hoặc hợp lệ:

User Mở khoá cửa.
Google Assistant Bạn có thể cho tôi mã bảo mật của bạn không?
Yêu cầu
{
  "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
          }
        }]
      }]
    }
  }]
}
Phản hồi
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

Mã PIN không chính xác

Ví dụ này cho thấy yêu cầu và phản hồi với thử thách challengeFailedPinNeeded. Bạn nên sử dụng thử thách này sau khi thử thách pinNeeded ban đầu không thành công.

Khi loại challengeFailedPinNeeded được trả về, Assistant sẽ yêu cầu lại mã bảo mật. Nếu người dùng thực hiện quá nhiều lần không thành công, bạn có thể trả về một phản hồi lỗi tooManyFailedAttempts. Xem phần Phản hồi lỗi.

User 333222
Google Assistant Rất tiếc, mã bảo mật không chính xác. Bạn có thể cho tôi mã bảo mật của bạn không?
Yêu cầu
{
  "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"
          }
        }]
      }]
    }
  }]
}
Phản hồi
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "challengeFailedPinNeeded"
      }
    }]
  }
}

Mã PIN hợp lệ

Ví dụ này cho thấy yêu cầu và phản hồi của mã PIN hợp lệ.

User 333444
Google Assistant Đang mở khoá cửa.
Yêu cầu
{
  "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"
          }
        }]
      }]
    }
  }]
}
Phản hồi
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "isLocked": false,
        "isJammed": false
      }
    }]
  }
}
User Trong điều kiện ánh sáng phòng khách, hãy giảm độ sáng.
Google Assistant Bạn có thể cho tôi mã bảo mật của bạn không?
Yêu cầu
{
  "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
          }
        }]
      }]
    }
  }]
}
Phản hồi
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

Phản hồi lỗi

Dưới đây là một số mã lỗi có thể được trả về kèm theo phản hồi của bạn:

  • challengeFailedNotSetupThao tác này yêu cầu mã bảo mật, nhưng mã này chưa được thiết lập trong ứng dụng trên thiết bị của bạn.
  • tooManyFailedAttempts - Rất tiếc, quá nhiều lần thử không thành công. Vui lòng chuyển đến ứng dụng trên thiết bị của bạn để hoàn tất thao tác đó.
  • pinIncorrectRất tiếc, mã bảo mật không chính xác.
  • userCancelledOK.

Xem danh sách toàn bộ các lỗi và trường hợp ngoại lệ.