İkincil kullanıcı doğrulaması, sesli komutlara ikinci faktör güvenliği eklemenize olanak tanır. Bu özellik, güvenlik kamerasını kapatma veya kapıyı açma gibi belirli işlemler için ek güvenlik katmanı eklemenize olanak tanır. İkincil kullanıcı doğrulama, belirli bir cihaz özelliğine bağlı değildir. Bu sayede, Google Assistant'nın ne zaman doğrulama isteğinde bulunacağına karar verebilirsiniz. Örneğin, bir güvenlik kamerası için OnOff özelliğiyle ilgili doğrulama isteğinde bulunabilir ancak bir ışık için OnOff özelliğiyle ilgili doğrulama isteğinde bulunmayabilirsiniz. Ayrıca, belirli durumlarda aynı işlem için Assistant sorun çıkarma seçeneğini de kullanabilirsiniz. Örneğin, bir NFC anahtarlığı kapının yakınında değilse Assistant'nın kapıyı açmak için bir sorgulama isteği göndermesini, anahtarlık mevcutsa ise sorgulama isteği göndermemesini isteyebilirsiniz.
Assistant iki tür sorgu gönderebilir: açık onay veya kişisel kimlik numarası (PIN). Bu, QUERY
ve EXECUTE
amaçlarına Assistant adresinden işleminize geri gönderilen bir zorluk bloğu ekler ve challengeNeeded
hata yanıtını kabul eder. Assistant, ardından zorluk bloğundaki zorluk verileriyle birlikte amaç isteğini işleminize geri gönderir. Ardından, kullanıcının doğru güvenlik yanıtını verip vermediğini belirlemek için
challenge verilerini doğrulayabilirsiniz.
Assistant, meydan okumayı başlatmak için iletişim kutusunu kullanır ancak Assistant'yı sesli olmayan platformlarda kullanırsanız PIN ve onay işlemleri 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 sorgusu türleri şunlardır:
- Sorgulama yok: İkincil kullanıcı doğrulama sorgulaması kullanılmayan istek ve yanıt.
- ackNeeded: Açık onay (evet veya hayır) gerektiren ve yanıt geri bildirimi olarak özellik durumlarını da kullanabilen ikincil bir kullanıcı doğrulamasıdır. Bu tür zorluklar, güvenlik cihazları ve özellikleri için önerilmez.
- pinNeeded: Kişisel kimlik numarası (PIN) gerektiren ikincil bir kullanıcı doğrulamasıdır. Güvenlik cihazları ve özellikleri için idealdir.
Zorluk yok
Bu örnekte, ışıkları açma zorluğu olmadan başarılı bir EXECUTE
isteği ve yanıtı gösterilmektedir.
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 } }] } }
ackNeeded
Bir özellik için birden fazla durum kullanabilen ikincil kullanıcı onaylı kimlik doğrulama veya basit bir onaylı kimlik doğrulama.
Aşağıdaki ackNeeded
doğrulama türleri vardır:
ackNeeded simple
Bu örnekte, bir ışığı karartma ackNeeded
zorluğu içeren basit bir istek ve yanıt ile ışığın karartıldığını onaylayan yanıt gösterilmektedir.
Kullanıcı | Salonun ışığını kıs. |
Google Assistant | Salonun ışığını kısma Emin misiniz? |
Kullanıcı | Evet. |
Google Assistant | Salonun ışığını kısma |
{ "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 özelliğin durumlarını 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ıcaklığını 28 dereceye ayarlamak istediğinizden emin misiniz? diye sorabilir.
Ayrıca, belirli bir isteğe göre Assistant'nın belirli bir işlemi gerçekleştirmesi için yanıta bir durum da ekleyebilirsiniz.
Aşağıdaki özellikler ve durumlar, özellik durumlarıyla ackNeeded
'yı 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, bir özellik durumu kullanan ackNeeded
zorluğu içeren bir istek ve yanıt gösterilmektedir. Klima modunu ısıtmaya değiştirir ve sıcaklığı 28 dereceye ayarlar. Ardından, yanıtta durum olarak 28
thermostatTemperatureSetpoint
döndürüldüğünden Assistant, kullanıcılardan ısıtmayı açıp 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
zorluğu önerilir.
Bu örnekte, pinNeeded
zorluk içeren bir ilk istek ve yanıt gösterilmektedir. Örnek, pinNeeded
zorluğu içeren bir yanıt döndürür. Bu nedenle Assistant, PIN 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 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, challengeFailedPinNeeded
zorluğu içeren istek ve yanıt gösterilmektedir. Bu sorgulama, ilk pinNeeded
sorgulama başarısız olduktan sonra kullanılmalıdır.
challengeFailedPinNeeded
türü iade edildiğinde,
Assistant güvenlik kodu tekrar istenir. Kullanıcı çok fazla sayıda 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 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'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ı | Salonun ışığını kıs. |
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ülebilecek bazı hata kodları şunlardır:
- tooManyFailedAttempts: Üzgünüz, ç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
Hata ve istisnaların tam listesini inceleyin.