İkincil kullanıcı doğrulaması, sesli komutlara iki faktörlü güvenlik eklemenizi sağlar. Bu, güvenlik kamerasını devre dışı bırakma veya kapı açma gibi belirli işlemler için ek güvenlik eklemenizi sağlar. İkincil kullanıcı doğrulaması, belirli bir cihaz özelliğine bağlı olmadığından Google Assistant tarafından ne zaman sorgulama yapılabileceğine karar verebilirsiniz. Örneğin, bir güvenlik kamerasında OnOff özelliği için bir test yayınlayabilir ancak bir ışık için OnOff özelliği için bir sorgulama gönderemezsiniz. Ayrıca, aynı işlem için belirli durumlarda Assistant sorun yaşayabilirsiniz. Örneğin, NFC anahtar kutusu o kapıya yakın değilse Assistant adlı oyuncunun kapı açmak için bir giriş isteğinde bulunmasını isteyebilirsiniz, ancak anahtar dolabı mevcut değilse yarışma düzenlemezsiniz.
Assistant iki tür sorgulama gerçekleştirebilir: açık onay veya kişisel kimlik numarası (PIN). Bu işlem, QUERY
ve Assistant amaçlarına yönelik olarak EXECUTE
bölümünden aldığınız bir işlem bloğunu ekler ve challengeNeeded
hata yanıtı kabul eder. Assistant daha sonra, intent bloğunu meydan okuma bloğundaki meydan okuma verileriyle
işleminize geri gönderir. Ardından, kullanıcının doğru güvenlik yanıtını verip vermediğini belirlemek için meydan okuma verilerini doğrulayabilirsiniz.
Assistant, giriş sorgulamasını yapmak için iletişim kutusunu kullanır ancak Assistant sessiz olmayan yüzeylerde kullanırsanız PIN ve onaylar ekranda yapılır.
Desteklenen cihaz türleri
İkincil kullanıcı doğrulaması tüm cihaz türlerinde desteklenir.
Desteklenen cihaz özellikleri
İkincil kullanıcı doğrulaması, tüm cihaz özellikleri için desteklenir.
Desteklenen meydan okuma türleri
Desteklenen ikincil kullanıcı doğrulama sorgulaması türleri şunlardır:
- Meydan okuma: İkincil kullanıcı doğrulama sorgulaması kullanmayan istek ve yanıtlardır.
- ack Needed - Açıkça onay (evet veya hayır) gerektiren ve aynı zamanda yanıt geri bildirimi olarak özellik durumlarını da kullanabilen ikincil kullanıcı doğrulaması. Bu sorgulama türü, güvenlik cihazları ve özellikler için önerilmez.
- pin Needed: Güvenlik cihazları ve özellikleri için ideal olan kişisel kimlik numarası (PIN) gerektiren ikincil bir kullanıcı doğrulamasıdır.
Yarışma yok
Bu örnekte, ışıkları açmayla ilgili bir sorun olmadan EXECUTE
isteğinin ve yanıtı başarılıdır.
Kullanıcı | Işıkları aç. |
Google Assistant | Tamam, 3 ışık açılıyor. |
{ "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 } }] } }
Onay gerekli
Bir özellik veya basit bir onay kimlik doğrulaması için birden fazla durum kullanabilen ikincil kullanıcı onay kimlik doğrulaması.
Aşağıdaki ackNeeded
meydan okuma türü türleri vardır:
"Basit" gerekli
Bu örnekte, basit bir istek ve yanıtta, ışığı karartma ackNeeded
ve ışığı karartma onayı gösteriliyor.
Kullanıcı | Salonun ışığını karart. |
Google Assistant | Salonun ışığı karartılıyor. Emin misiniz? |
Kullanıcı | Evet. |
Google Assistant | Salonun ışığı karartılıyor. |
{ "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": "ackNeeded" } }] } }
{ "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 } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS" }] } }
ack TRY gerekiyor
Bir özellik için durumları kullanabilen, ikincil kullanıcı onayı kimlik doğrulaması.
Örneğin, Sıcaklık Ayarı özelliğiyle çalışıyorsanız hem thermostatMode
hem de thermostatTemperatureSetpoint
ayarlanmışsa Assistant şunu sorabilir: Klimanın ısısını 28 dereceye ayarlamak istediğinizden emin misiniz?
Assistant öğesinin belirli bir isteğe göre belirli bir işlem gerçekleştirmesini sağlamak için yanıta bir durum da ekleyebilirsiniz.
Aşağıdaki özellikler ve eyaletler, özellik özelliklerine sahip ackNeeded
özelliğini destekler. Belirli bir özelliğin listelenmesi, tüm durumlarının desteklendiğini gösterir.
- ArmDisarm
currentArmLevel
currentStatusReport
- Dolgu
- Kilit Kilidi
- Açık
on
- OpenClose
- Sahne
- Sıcaklık Ayarı
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
Bu örnekte, özellik durumu kullanan bir ackNeeded
sorgulaması ile istek ve yanıt gösterilmektedir. Klima modunu ısıtma moduna geçirir ve sıcaklığı 28 dereceye ayarlar. Ardından Assistant, kullanıcılardan sıcaklığın etkinleştirilmesini ve sıcaklığın 28 dereceye ayarlanmasını ister. thermostatTemperatureSetpoint
şeklinde yanıt verildiğinde durum, kullanıcılardan 28
olarak ayarlanır.
Kullanıcı | Klimayı ısıtma moduna ayarla. |
Google Assistant | Klimanın ısıtma sıcaklığını 28 dereceye ayarlamak istediğinizden emin misiniz? |
Kullanıcı | Evet. |
Google Assistant. | Klimanın ısısı 28 dereceye ayarlanıyor. |
{ "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" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "states": { "thermostatMode": "heat", "thermostatTemperatureSetpoint": 28 }, "errorCode": "challengeNeeded", "challengeNeeded": { "type": "ackNeeded" } }] } }
{ "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 } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "thermostatMode": "heat", "thermostatTemperatureSetpoint": 28 } }] } }
Raptiye gerekiyor
Güvenlik cihazları için pinNeeded
meydan okuması önerilir.
Bu örnekte ilk istek ve pinNeeded
sorunuyla verilen yanıt gösterilmektedir. Örnekte, pinNeeded
sorgulaması içeren bir yanıt döndürülür. Bu nedenle Assistant, PIN'i ister. Bu noktada kullanıcı, yanlış veya geçerli bir raptiye sağlayabilir.
Yanlış veya geçerli bir PIN için örnek istek ve yanıt:
Kullanıcı | Kapının kilidini açın. |
Google Assistant | Güvenlik kodunuzu alabilir miyim? |
{ "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" } }] } }
Yanlış PIN
Bu örnekte istek ve yanıt, challengeFailedPinNeeded
sorgulamasıyla gösterilmektedir. Bu yarışma ilk pinNeeded
görevi başarısız olduktan sonra kullanılmalıdır.
Bir challengeFailedPinNeeded
türü döndürüldüğünde Assistant, güvenlik kodunu tekrar ister. Kullanıcı çok fazla başarısız deneme yaparsa tooManyFailedAttempts
hata yanıtı döndürebilirsiniz. Hata yanıtları başlıklı makaleyi inceleyin.
Kullanıcı | 333222 |
Google Assistant | Maalesef güvenlik kodu yanlış. Güvenlik kodunuzu alabilir miyim? |
{ "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" } }] } }
Geçerli PIN
Bu örnekte, geçerli bir PIN isteği ve yanıtı gösterilmektedir.
Kullanıcı | 333444 |
Google Assistant | Kapı kilidi açılıyor. |
{ "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 } }] } }
Kullanıcı | Salonun ışığını karart. |
Google Assistant | Güvenlik kodunuzu alabilir miyim? |
{ "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" } }] } }
Hata yanıtları
Yanıtlarınızla birlikte döndürülen bazı hata kodları şunlardır:
challengeFailedNotSetup
- Bu işlem için güvenlik kodu gerekiyor ama cihazının uygulamasında güvenlik kodu ayarlanmamış.tooManyFailedAttempts
- Maalesef çok fazla başarısız deneme oldu. Bu işlemi tamamlamak için lütfen cihazınızın uygulamasına gidin.pinIncorrect
- Maalesef güvenlik kodu yanlış.userCancelled
- Tamam.
Hataların ve istisnaların tam listesini inceleyin.