İkincil kullanıcı doğrulaması, sesli komutlara ikinci düzey güvenlik eklemenizi sağlar. Bu şekilde, güvenlik kamerasını kapatma veya kapı açma gibi belirli işlemler için güvenliği artırabilirsiniz. İkincil kullanıcı doğrulaması, belirli bir cihaz özelliğine bağlı değildir. Bu sayede, Google Assistant uygulamasının ne zaman sorun yaşaması gerektiğine karar verebilirsiniz. Örneğin, bir güvenlik kamerasında OnOff özelliği için bir meydan okuma yayınlamayı, ancak bir ışık için OnOff özelliği için meydan okuma yayınlamayın. Ayrıca, aynı işlem için belirli durumlarda Assistant sorunu yaşamanız gerekebilir. Örneğin, NFC anahtar kilidi bir kapının yakınında değilse Assistant tarafından kapının açılması için sorgulama isteği göndermesini isteyebilirsiniz.
Assistant, iki tür giriş sorgulaması gönderebilir: açık onay veya kişisel kimlik numarası (PIN). Bu işlem, QUERY
sorgusuna bir meydan okuma bloğu ve Assistant tarafından işleminize geri gönderilen EXECUTE
amacı ekler ve challengeNeeded
hata yanıtını kabul eder. Assistant, daha sonra amaç isteğini, sorgulama bloğundaki meydan okuma verileriyle birlikte işleminize geri gönderir. Daha sonra, kullanıcının doğru güvenlik yanıtını verip vermediğini belirlemek için sorgulama verilerini doğrulayabilirsiniz.
Assistant, sorgulamayı uygulamak için iletişim kutusunu kullanır ancak Assistant uygulamasını sesli olmayan yüzeylerde kullanırsanız ekranda PIN ve onaylar gerçekleşir.
Desteklenen cihaz türleri
İkincil kullanıcı doğrulama tüm cihaz türlerinde desteklenir.
Desteklenen cihaz traits
İkincil kullanıcı doğrulama, tüm cihaz özellikleri için desteklenir.
Desteklenen giriş sorgulaması türleri
Desteklenen ikincil kullanıcı doğrulama sorgulaması türleri şunlardır:
- Sorgulama yok: İkincil kullanıcı doğrulama sorgulamasını kullanmayan bir istek ve yanıt.
- ackReturned: Açık onay (evet veya hayır) gerektiren ve yanıt geri bildirimi olarak özellik durumlarını da kullanabilen ikincil kullanıcı doğrulaması. Bu sorgulama türü, güvenlik cihazları ve özellikleri için önerilmez.
- pin needed - Güvenlik cihazları ve özellikleri için ideal olan kişisel kimlik numarası (PIN) gerektiren ikincil kullanıcı doğrulaması.
Meydan okuma yok
Bu örnekte, ışıkları açmaya gerek kalmadan başarılı bir EXECUTE
isteği ve yanıtı gösterilmektedir.
Kullanıcı | Işıkları aç. |
Google Assistant | Tamam, 3 ışığı açıyorum. |
{ "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 } }] } }
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
sorgulaması türleri vardır:
ackNoteed basit
Bu örnekte, ışığı karartma için ackNeeded
sorgulaması içeren basit bir istek ve yanıt, ışığı kısma onayı gösterilmektedir.
Kullanıcı | Salonun ışığını kıs. |
Google Assistant | Salonun ışığı kısılıyor. Emin misiniz? |
Kullanıcı | Evet. |
Google Assistant | Salonun ışığı kısı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" }] } }
Özellik durumlarıyla birlikte ack needed
Bir özellik için durumları kullanabilen ikincil kullanıcı onayı kimlik doğrulaması.
Örneğin, TemperatureSetting özelliğiyle çalışıyorsanız ve hem thermostatMode
hem de thermostatTemperatureSetpoint
ayarlanmışsa Assistant, Klimanın ısısını 28 dereceye ayarlamak istediğinizden emin misiniz? diye sorabilir.
Ayrıca, Assistant ürününün belirli bir isteğe göre belirli bir işlemi gerçekleştirmesini sağlamak için yanıta bir durum ekleyebilirsiniz.
Aşağıdaki özellikler ve durumlar, özellik durumlarıyla birlikte ackNeeded
özelliğini destekler. Belirli bir özelliğin listelenmesi, tüm durumlarının desteklendiğini gösterir.
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
Bu örnekte, özellik durumu kullanan ackNeeded
sorgulaması içeren bir istek ve yanıt gösterilmektedir. Klima modunu ısıtma olarak değiştirir ve sıcaklığı 28 dereceye ayarlar. Ardından Assistant, yanıtta durum olarak 28
thermostatTemperatureSetpoint
döndürüldüğünden, kullanıcılardan ısıtmayı açmaları ve sıcaklığı 28 dereceye ayarlamaları için onay ister.
Kullanıcı | Klima modunu ısıtma moduna ayarla. |
Google Assistant | Klimanın ısısını 28 dereceye ayarlamak istediğinden emin misin? |
Kullanıcı | Evet. |
Google Assistantnt | Klimanın ısısını 28 dereceye ayarlıyorum. |
{ "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 } }] } }
pinİhtiyaç
pinNeeded
sorgulaması, güvenlik cihazları için önerilir.
Bu örnekte, pinNeeded
giriş sorgulaması içeren ilk istek ve yanıt gösterilmektedir. Örnek, pinNeeded
sorgulaması içeren bir yanıt döndürdüğünden
Assistant PIN ister. Bu noktada, kullanıcı yanlış veya geçerli bir PIN sağlayabilir.
Örnek istek ve yanlış veya geçerli PIN için yanıt:
Kullanıcı | Kapının kilidini açın. |
Google Assistant | Güvenlik kodunu 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, challengeFailedPinNeeded
giriş sorgulaması içeren istek ve yanıt gösterilmektedir. Bu sorgulama, ilk pinNeeded
sorgulaması 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 sayıda başarısız deneme gerçekleştirirse tooManyFailedAttempts
hata yanıtı döndürebilirsiniz. Hata yanıtları bölümüne göz atın.
Kullanıcı | 333222 |
Google Assistant | Maalesef güvenlik kodu yanlış. Güvenlik kodunu 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ının 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ı kıs. |
Google Assistant | Güvenlik kodunu 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ülebilecek bazı hata kodları şunlardır:
challengeFailedNotSetup
- Bu işlem bir güvenlik kodu gerektiriyor ancak cihazınızın uygulamasında ayarlanmamış.tooManyFailedAttempts
- Maalesef çok fazla başarısız girişimde bulunuldu. 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 listesine bakın.