Willkommen beim Google Home Developer Center, der neuen Anlaufstelle für Smart-Home-Aktionen. Hinweis:Sie erstellen weiterhin Aktionen in der Actions Console.

Sekundäre Nutzerbestätigung

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Mit der Bestätigung von sekundären Nutzern können Sie die Bestätigung in zwei Schritten für Sprachbefehle aktivieren. So können Sie die Sicherheit bestimmter Aktionen erhöhen, z. B. wenn Sie eine Überwachungskamera ausschalten oder eine Tür öffnen möchten. Die sekundäre Nutzerbestätigung ist nicht an eine bestimmte Geräteeigenschaft gebunden. Dadurch können Sie entscheiden, wann Google Assistant ein Problem ausstellen soll. Sie können beispielsweise festlegen, dass für die Eigenschaft OnOff für eine Überwachungskamera ein Wettkampf gestartet wird, für den Faktor OnOff für eine Lampe jedoch nicht. Außerdem können in bestimmten Situationen Assistant Problemherausforderungen für dieselbe Aktion auftreten. Sie können zum Beispiel Assistant auffordern, eine Tür zu öffnen, wenn sich kein NFC-Schlüsselanhänger in der Nähe dieser Tür befindet. Wenn der Schlüsselschlüssel vorhanden ist, können Sie keinesfalls ausgeben.

Assistant kann zwei Arten von Identitätsbestätigungen ausstellen: explizite Bestätigung oder persönliche Identifikationsnummer (PIN). Dadurch wird ein QUERY- und EXECUTE-Intent von Assistant an Ihre Aktion zurückgesendet und es wird eine challengeNeeded-Fehlerantwort akzeptiert. Assistant sendet dann die Intent-Anfrage mit den Challenge-Daten im Challenge-Block an Ihre Aktion zurück. Sie können dann die Daten der Identitätsbestätigung validieren, um festzustellen, ob der Nutzer die richtige Sicherheitsantwort gegeben hat.

Assistant verwendet das Dialogfeld, um die Aufgabe zu senden. Wenn Sie Assistant jedoch auf Nicht-Sprachoberflächen verwenden, werden PINs und Bestätigungen auf dem Bildschirm angezeigt.

Unterstützte Gerätetypen

Die Bestätigung von sekundären Nutzern wird auf allen Gerätetypen unterstützt.

Unterstützte Gerätemerkmale

Die Bestätigung von sekundären Nutzern wird für alle Gerätemerkmale unterstützt.

Unterstützte Arten von Herausforderungen

Das sind die unterstützten Arten der Identitätsbestätigung für sekundäre Nutzer:

  • Keine Identitätsbestätigung: Eine Anfrage und Antwort, die keine sekundäre Identitätsbestätigung verwendet.
  • ackNeeded – Sekundäre Nutzerbestätigung, die eine explizite Bestätigung (Ja oder Nein) erfordert und den Trait-Status auch als Antwortfeedback verwenden kann. Dieser Sicherheitstyp wird für Sicherheitsgeräte und -merkmale nicht empfohlen.
  • pinNeeded: Eine sekundäre Nutzerbestätigung, für die eine persönliche Identifikationsnummer (PIN) erforderlich ist. Diese ist ideal für Sicherheitsgeräte und -merkmale.

Keine Herausforderung

Dieses Beispiel zeigt eine erfolgreiche EXECUTE-Anfrage und -Antwort ohne die Möglichkeit, das Licht einzuschalten.

Nutzer Schalte das Licht ein.
Google Assistant Ok, 3 Lampen werden eingeschaltet.
Anfrage
{
  "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
          }
        }]
      }]
    }
  }]
}
Antwort
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true
      }
    }]
  }
}

Bestätigung erforderlich

Eine sekundäre Authentifizierung für Nutzerbestätigung, die mehrere Status für eine Eigenschaft oder eine einfache Bestätigungsauthentifizierung verwenden kann.

Es gibt die folgenden Arten von ackNeeded-Herausforderungen:

Bestätigung erforderlich

Dieses Beispiel zeigt eine einfache Anfrage und Antwort mit einer ackNeeded-Herausforderung zum Dimmen eines Lichts und einer Bestätigung zum Dimmen des Lichts.

Nutzer Dimm das Licht im Wohnzimmer.
Google Assistant Das Licht im Wohnzimmer wird gedimmt. Bist du sicher?
Nutzer Ja.
Google Assistant Das Licht im Wohnzimmer wird gedimmt.
Anfrage 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
          }
        }]
      }]
    }
  }]
}
Antwort 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
Anfrage 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
          }
        }]
      }]
    }
  }]
}
Antwort 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS"
    }]
  }
}

ackNeeded mit Eigenschaften

Eine sekundäre Authentifizierung für Nutzerbestätigungen, die Status für ein Merkmal verwenden kann. Wenn Sie beispielsweise mit dem Attribut TemperatureSetting arbeiten und sowohl thermostatMode als auch thermostatTemperatureSetpoint festgelegt sind, kann Assistant fragen: Möchten Sie die Heizung an der Klimaanlage wirklich auf 28 Grad stellen?

Sie können auch einen Status in eine Antwort aufnehmen, damit Assistant eine bestimmte Aktion anhand einer bestimmten Anfrage ausführt.

Die folgenden Merkmale und Bundesstaaten unterstützen ackNeeded mit Merkmalszuständen. Eine Auflistung einer bestimmten Eigenschaft zeigt an, dass alle ihre Zustände unterstützt werden.

Dieses Beispiel zeigt eine Anfrage und Antwort mit einer ackNeeded-Herausforderung, die einen bestimmten Status verwendet. Er schaltet den Klimaanlagenmodus auf Heizen und stellt die Temperatur auf 28 Grad ein. Anschließend bittet Assistant die Nutzer, die Heizung einzuschalten und die Temperatur auf 28 Grad zu setzen, da ein thermostatTemperatureSetpoint von 28 als Status in der Antwort zurückgegeben wird.

Nutzer Stelle den AC-Modus auf „Heizen“ ein.
Google Assistant Möchtest du die Heizung an der Klimaanlage wirklich auf 28 Grad einstellen?
Nutzer Ja.
Google Assistant Die Temperatur der Klimaanlage wird auf 28 Grad eingestellt.
Anfrage 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"
          }
        }]
      }]
    }
  }]
}
Antwort 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      },
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
Anfrage 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
          }
        }]
      }]
    }
  }]
}
Antwort 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      }
    }]
  }
}

PIN Needed

Die pinNeeded-Herausforderung wird für Sicherheitsgeräte empfohlen.

Dieses Beispiel zeigt eine erste Anfrage und Antwort mit einer pinNeeded-Herausforderung. In diesem Beispiel wird eine Antwort mit einer pinNeeded-Herausforderung zurückgegeben, also fragt Assistant nach der PIN. An dieser Stelle kann der Nutzer eine falsche oder gültige PIN angeben.

Beispielanfrage und -antwort für eine falsche oder gültige PIN:

Nutzer Tür entriegeln.
Google Assistant Kann ich deinen Sicherheitscode haben?
Anfrage
{
  "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
          }
        }]
      }]
    }
  }]
}
Antwort
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

Falsche PIN

Dieses Beispiel zeigt die Anfrage und die Antwort mit einer challengeFailedPinNeeded-Herausforderung. Dieser Wettkampf sollte verwendet werden, nachdem der erste Wettkampf pinNeeded fehlgeschlagen ist.

Wenn ein challengeFailedPinNeeded-Typ zurückgegeben wird, fragt Assistant noch einmal nach dem Sicherheitscode. Wenn der Nutzer zu viele fehlgeschlagene Versuche ausführt, können Sie eine tooManyFailedAttempts-Fehlerantwort zurückgeben. Siehe Fehlerantworten.

Nutzer 333222
Google Assistant Der Sicherheitscode ist leider falsch. Kann ich deinen Sicherheitscode haben?
Anfrage
{
  "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"
          }
        }]
      }]
    }
  }]
}
Antwort
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "challengeFailedPinNeeded"
      }
    }]
  }
}

Gültige PIN

Dieses Beispiel zeigt die Anfrage und Antwort einer gültigen PIN.

Nutzer 333444
Google Assistant Die Tür wird entriegelt.
Anfrage
{
  "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"
          }
        }]
      }]
    }
  }]
}
Antwort
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "isLocked": false,
        "isJammed": false
      }
    }]
  }
}
Nutzer Dimm das Licht im Wohnzimmer.
Google Assistant Kann ich deinen Sicherheitscode haben?
Anfrage
{
  "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
          }
        }]
      }]
    }
  }]
}
Antwort
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

Fehlerantworten

Hier sind einige Fehlercodes, die mit Ihren Antworten zurückgegeben werden können:

  • challengeFailedNotSetup: Für diese Aktion ist ein Sicherheitscode erforderlich, aber dieser wurde in der App Ihres Geräts nicht eingerichtet.
  • tooManyFailedAttempts - Leider zu viele Fehlversuche. Rufe hierzu die App deines Geräts auf.
  • pinIncorrect: Der Sicherheitscode ist leider falsch.
  • userCancelled: OK.

Vollständige Liste der Fehler und Ausnahmen