İkincil kullanıcı doğrulaması, sesli komutlara ikinci faktör güvenlik eklemenize olanak tanır. Bu sayede, güvenlik kamerasını kapatma veya kapı açma gibi belirli işlemler için ek güvenlik ekleyebilirsiniz. İkincil kullanıcı doğrulaması belirli bir cihaz özelliğine bağlı değildir. Bu sayede, Google Assistant'ün ne zaman istem göndereceğine karar verebilirsiniz. Örneğin, güvenlik kamerası için OnOff özelliğiyle ilgili bir meydan okuma göndermeyi seçebilir ancak OnOff özelliğiyle ilgili bir meydan okuma göndermeyebilirsiniz. Ayrıca, aynı işlem için belirli durumlarda Assistant itirazda bulunabilirsiniz. Örneğin, Assistant'ten bir kapının yakınında NFC anahtar kartı yoksa kapıyı açmak için istek göndermesini isteyebilir ancak anahtar kartı varsa istek göndermemesini sağlayabilirsiniz.
Assistant, açık onay veya kişisel kimlik numarası (PIN) olmak üzere iki tür istek gönderebilir. Bu işlem, Assistant'den işleminize gönderilen QUERY
ve EXECUTE
niyetlerine bir itiraz bloğu ekler ve challengeNeeded
hata yanıtını kabul eder. Assistant, intent isteğini challenge bloğundaki challenge verileriyle birlikte işleminize geri gönderir. Ardından, kullanıcının doğru güvenlik yanıtını verip vermediğini belirlemek için istem verilerini doğrulayabilirsiniz.
Assistant, istem göndermek için iletişim kullanır ancak Assistant'ü sesli 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 giriş sorgulaması türleri
Desteklenen ikincil kullanıcı doğrulama istem türleri şunlardır:
- Zorluk yok: İkincil kullanıcı doğrulama zorluğu kullanmayan bir istek ve yanıt.
- ackNeeded: Belirli bir onayı (evet veya hayır) gerektiren ve yanıt geri bildirimi olarak özellik durumlarını da kullanabilen ikincil kullanıcı doğrulaması. Bu türde istemler, güvenlik cihazları ve özellikleri için önerilmez.
- pinNeeded: Güvenlik cihazları ve özellikleri için ideal olan kişisel kimlik numarası (PIN) gerektiren ikincil bir kullanıcı doğrulaması.
İtiraz yok
Bu örnekte, ışıkları açma isteğinde bulunmadan başarılı bir EXECUTE
isteği ve yanıtı gösterilmektedir.
Kullanıcı | Işıkları açın. |
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 } }] } }
ackNeeded
Bir özellik için birden fazla durum kullanabilen veya basit bir onay kimlik doğrulaması olan ikincil kullanıcı onay kimlik doğrulaması.
ackNeeded
doğrulama türleri şunlardır:
ackNeeded simple
Bu örnekte, ışığı karartma ackNeeded
isteği ve ışığı karartma onayı içeren basit bir istek ve yanıt gösterilmektedir.
Kullanıcı | Oturma odasının ışığını kıs. |
Google Assistant | Oturma odasının ışığını kısıyor. Emin misiniz? |
Kullanıcı | Evet. |
Google Assistant | Oturma odasının ışığını kısı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 ackNeeded
Bir özellik için durum kullanabilen ikincil kullanıcı onayı kimlik doğrulaması.
Örneğin, TemperatureSetting özelliğiyle çalışıyorsanız ve hem thermostatMode
hem de thermostatTemperatureSetpoint
ayarlandıysa Assistant Klima sıcaklığını 28 dereceye ayarlamak istediğinizden emin misiniz? sorusunu sorabilir.
Ayrıca, Assistant'ün belirli bir isteğe göre belirli bir işlem yapmasını sağlamak için yanıta bir durum da ekleyebilirsiniz.
Aşağıdaki özellikler ve durumlar, özellik durumlarıyla ackNeeded
'ü destekler. Belirli bir özelliğin listelenmesinin nedeni, özelliğin tüm durumlarının desteklenmesidir.
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
Bu örnekte, özellik durumunu kullanan bir ackNeeded
istemiyle birlikte bir istek ve yanıt gösterilmektedir. Klima modunu ısıtmaya değiştirir ve sıcaklığı 28 dereceye ayarlar. Ardından Assistant, yanıtta 28
değerinde bir thermostatTemperatureSetpoint
döndürüldüğünden kullanıcılardan ısıtmayı açmaları ve sıcaklığı 28 dereceye ayarlamalarını ister.
Kullanıcı | Klima modunu ısıtmaya ayarlayın. |
Google Assistant | Klimanın sıcaklığını 28 dereceye ayarlamak istediğinizden emin misiniz? |
Kullanıcı | Evet. |
Google Assistant | Klimanın sıcaklığı 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 } }] } }
pinNeeded
Güvenlik cihazları için pinNeeded
istemi önerilir.
Bu örnekte, pinNeeded
istem içeren ilk istek ve yanıt gösterilmektedir. Örnekte, pinNeeded
meydan okuması 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 PIN 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 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, istek ve yanıt challengeFailedPinNeeded
istemiyle gösterilmektedir. Bu istem, ilk pinNeeded
isteği başarısız olduktan sonra kullanılmalıdır.
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ı bölümüne bakı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'in 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ı | Oturma odasının ışığı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:
- tooManyFailedAttempts: Maalesef çok fazla başarısız deneme yapıldı. Lütfen söz konusu işlemi tamamlamak için cihazınızın uygulamasına gidin.
- pinIncorrect: Maalesef güvenlik kodu yanlış.
- userCancelled - Tamam
Hataların ve istisnaların tam listesini inceleyin.