İkincil kullanıcı doğrulaması, sesli komutlara ikinci faktör güvenliği eklemenize olanak tanır. Bu şekilde güvenlik kamerası kapatma veya kapı açma gibi belirli işlemler için ek güvenlik sağlayabilirsiniz. İkincil kullanıcı doğrulaması, Google Assistant özelliğinin ne zaman meydan okuyacağına karar vermenize olanak tanıyan belirli bir cihaz özelliğine bağlı değildir. Örneğin, güvenlik kamerası için OnOff özelliği için bir test hazırlamayı, ancak bir ışık için OnOff özelliği için bir meydan okuma düzenlememeyi seçebilirsiniz. Ayrıca belirli durumlarda aynı işlem için Assistant sorunlar yaşayabilirsiniz. Örneğin, bir NFC anahtarlığı söz konusu kapının yakınında değilse Assistant adlı kişinin bir kapıyı açmak için meydan okuma isteğinde bulunmasını, ancak anahtar uzaktan kumandası varsa bir görev yayınlamamasını isteyebilirsiniz.
Assistant, iki tür giriş sorgulaması düzenleyebilir: açık onay veya kişisel kimlik numarası (PIN). Bu işlem, QUERY
öğesine bir meydan okuma bloğu ekler ve Assistant hizmetinden EXECUTE
işlevinize geri gönderilen EXECUTE
niyeti içerir ve challengeNeeded
hata yanıtını kabul eder. Assistant daha sonra meydan okuma blokundaki meydan okuma verilerini kullanarak intent isteğinizi işleme gönderir. Ardından, kullanıcının doğru güvenlik yanıtı verip vermediğini belirlemek için meydan okuma verilerini doğrulayabilirsiniz.
Assistant, sorgulamayı yapmak için iletişim kutusunu kullanır, ancak Assistant ses harici platformlarda kullanılırsa 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 yarışma türleri
Desteklenen ikincil kullanıcı doğrulama sorgulaması türleri şunlardır:
- Giriş sorgulaması yok: İkincil kullanıcı doğrulama sorgulaması kullanmayan bir istek ve yanıttır.
- ack Needed - Açık onay gerektiren (evet veya hayır) ve özellik durumlarını da yanıt geri bildirimi olarak kullanabilen ikincil bir kullanıcı doğrulaması. Bu giriş türü, güvenlik cihazları ve özellikler için önerilmez.
- pin Needed: Güvenlik cihazları ve özellikleri için ideal olan kişisel bir kimlik numarası (PIN) gerektiren ikincil bir kullanıcı doğrulamasıdır.
Yarışma yok
Bu örnekte, ışıkları açma meydan okuması olmadan EXECUTE
için başarılı bir istek ve yanıt gösterilmektedir.
Kullanıcı | Işıkları aç. |
Google Assistant | Tamam, 3 lamba 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 ihtiyacı
Bir özellik veya birden fazla basit kimlik doğrulama için birden fazla durum kullanabilen ikincil bir kullanıcı kimlik doğrulaması.
Aşağıdaki türlerde ackNeeded
meydan okuma türü mevcuttur:
ackWhat sade
Bu örnekte, ışığı karartma isteği ve ışığın karartılması için ackNeeded
ile basit bir istek ve yanıt 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" }] } }
acked - Özellik özellikleriyle ilişkili
Bir özellik için durumları kullanabilen ikincil bir kullanıcı onayı kimlik doğrulaması.
Örneğin, TemperatureSettings özelliği ile çalışıyorsanız ve hem thermostatMode
hem de thermostatTemperatureSetpoint
ayarlanmışsa Assistant şunu sorabilir: Klimanın ısısını 28 dereceye ayarlamak istediğinizden emin misiniz?
Ayrıca Assistant öğesinin belirli bir isteğe dayalı belirli bir işlem gerçekleştirmesini sağlamak için yanıta durum ekleyebilirsiniz.
Aşağıdaki özellikler ve eyaletler, özellik durumuyla ackNeeded
özelliğini destekler. Belirli bir özelliğin listelenmesi, tüm özelliklerinin desteklendiğini gösterir.
- Ulusal Güçlendirme
currentArmLevel
currentStatusReport
- Dolgu
- Kilit Kilidi
- Açık
on
- OpenClose
- Sahne
- Sıcaklık Ayarı
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
Bu örnekte, özellik durumunu kullanan ackNeeded
sorgulaması içeren bir istek ve yanıt gösterilmektedir. Klima modunu ısıtma moduna alır ve sıcaklığı 28 dereceye ayarlar. Ardından Assistant yanıttan durum olarak thermostatTemperatureSetpoint
/ 28
döndürüldüğü için kullanıcılardan onay almalarını ve sıcaklığı 28 dereceye ayarlamasını ister.
Kullanıcı | Klimayı ısıtma moduna ayarla. |
Google Assistant | Klimanın ısısını 28 dereceye ayarlamak istediğinden emin misin? |
Kullanıcı | Evet. |
Google Assistant sn | 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 } }] } }
PIN gerekiyor
Güvenlik cihazları için pinNeeded
yarışması önerilir.
Bu örnekte, pinNeeded
ile başlayan bir ilk istek ve 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ı, hatalı 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 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, bir challengeFailedPinNeeded
meydan okumasıyla istek ve yanıt gösterilmektedir. Bu meydan okuma, ilk pinNeeded
deneme başarısız olduktan sonra kullanılmalıdır.
challengeFailedPinNeeded
türü döndürülürken 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ı makaleye 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 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ı 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 döndürülebilecek bazı hata kodları aşağıda verilmiştir:
challengeFailedNotSetup
- Bu işlem için güvenlik kodu gerekiyor ama cihazının uygulamasında güvenlik kodu ayarlanmamış.tooManyFailedAttempts
- Maalesef çok fazla sayıda başarısız deneme yapıldı. 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.