İkincil Kullanıcı Doğrulaması

İkincil kullanıcı doğrulaması, sesli komutlara ikinci düzey 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 sağlayabilirsiniz. İkincil kullanıcı doğrulaması belirli bir cihaz özelliğine bağlı değildir. Bu sayede Google Assistant için ne zaman bir sorgulama yapacağınıza karar verebilirsiniz. Örneğin, güvenlik kamerası için OnOff özelliği için meydan okuma yapmayı, ancak bir ışık için OnOff özelliği için sorgulama yapmayı seçebilirsiniz. Belirli durumlarda aynı işlem için Assistant sorun meydan okuması da yapabilirsiniz. Örneğin, NFC anahtarlık bir kapının yakınında değilse Assistant tarafından bir kapının açılması için meydan okuma isteği göndermesini isteyebilir, ancak uzaktan kumandalı klavye varsa sorgu göndermemeyi isteyebilirsiniz.

Assistant, iki tür giriş sorgulaması gönderebilir: açık onay veya kişisel kimlik numarası (PIN). Bu, Assistant tarafından eyleminize geri gönderilen QUERY ve EXECUTE amaçlarına meydan okuma bloku ekler ve challengeNeeded hata yanıtını kabul eder. Assistant, daha sonra amaç isteğini meydan okuma bloğundaki meydan okuma verileriyle birlikte işleminize gönderir. Ardından, kullanıcının doğru güvenlik yanıtını verip vermediğini belirlemek için sorgulama verilerini doğrulayabilirsiniz.

Assistant, sorgulamayı yapmak için iletişim kutusunu kullanır. Ancak ses harici yüzeylerde Assistant kullanırsanız PIN ve onaylar ekranda gösterilir.

Desteklenen cihaz türleri

İkincil kullanıcı doğrulaması tüm cihaz türlerinde desteklenir.

Desteklenen cihaz özellikleri

İkincil kullanıcı doğrulama, tüm cihaz özellikleri için desteklenir.

Desteklenen sorgulama türleri

Desteklenen ikincil kullanıcı doğrulaması sorgulama türleri şunlardır:

  • Zorluk yok: İkincil kullanıcı doğrulaması sorgulaması kullanmayan bir istek ve yanıt.
  • ackNeeded - Açık onay gerektiren (evet veya hayır) ve özellik durumlarını yanıt geri bildirimi olarak kullanabilen ikincil bir kullanıcı doğrulamasıdır. Bu giriş sorgulaması türü, güvenlik cihazları ve özellikleri için önerilmez.
  • pinNeeded: Kişisel kimlik numarası (PIN) gerektiren ikincil kullanıcı doğrulaması, güvenlik cihazları ve özellikleri için idealdir.

Meydan okuma yok

Bu örnekte, ışıkları yakma zorluğu içermeyen başarılı bir EXECUTE isteği ve yanıtı gösterilmektedir.

Kullanıcı Işıkları aç.
Google Assistant Tamam, 3 ışığı açıyorum.
İstek
{
  "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
          }
        }]
      }]
    }
  }]
}
Yanıt
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true
      }
    }]
  }
}

ackNeeded

Bir özellik veya basit onay kimlik doğrulaması için birden fazla durum kullanabilen ikincil kullanıcı onayı kimlik doğrulaması.

Aşağıdaki ackNeeded giriş sorgulaması türü vardır:

ackgerekiyor basit

Bu örnekte, ışığın karartılması için ackNeeded meydan okumasının ve ışığın karartma onayının yer aldığı 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.
1. İstek
{
  "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
          }
        }]
      }]
    }
  }]
}
Yanıt 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
2. İstek
{
  "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
          }
        }]
      }]
    }
  }]
}
Yanıt 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS"
    }]
  }
}

özellik durumlarıyla birlikte ackİhtiyaç duyuldu

Bir özellik için durumları kullanabilen ikincil bir 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? sorusunu sorabilir.

Ayrıca, Assistant ürününün belirli bir isteğe göre belirli bir işlem gerçekleştirmesini sağlamak için yanıta bir durum ekleyebilirsiniz.

Aşağıdaki özellikler ve eyaletler, özellik durumlarıyla birlikte ackNeeded öğesini destekler. Belirli bir özelliğin listesi, bu özelliğin tüm durumlarının desteklendiğini gösterir.

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, kullanıcılardan ısıtmayı açmalarını ve sıcaklığı 28 dereceye ayarlamasını ister. Yanıtta thermostatTemperatureSetpoint değeri 28 döndürülür.

Kullanıcı Klima modunu ısıtmaya ayarla.
Google Assistant Klimanın ısısını 28 dereceye ayarlamak istediğinizden emin misiniz?
Kullanıcı Evet.
Google Assistantnt Klimanın ısısı 28 dereceye ayarlanıyor.
1. İstek
{
  "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"
          }
        }]
      }]
    }
  }]
}
Yanıt 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      },
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
2. İstek
{
  "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
          }
        }]
      }]
    }
  }]
}
Yanıt 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      }
    }]
  }
}

pinNeeded

pinNeeded sorgulaması, güvenlik cihazları için önerilir.

Bu örnekte, pinNeeded sorgulama içeren ilk istek ve yanıt gösterilmektedir. Örnek, pinNeeded sorgulaması içeren bir yanıt döndürüyor. Bu nedenle Assistant, PIN'i istiyor. Bu noktada kullanıcı yanlış veya geçerli bir PIN sağlayabilir.

Yanlış veya geçerli PIN için örnek istek ve yanıt:

Kullanıcı Kapının kilidini açın.
Google Assistant Güvenlik kodunu alabilir miyim?
İstek
{
  "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
          }
        }]
      }]
    }
  }]
}
Yanıt
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "pinNeeded"
      }
    }]
  }
}

Yanlış PIN

Bu örnekte, challengeFailedPinNeeded meydan okumasıyla istek ve yanıt gösterilmektedir. Bu giriş, 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 başarısız deneme yaparsa tooManyFailedAttempts hata yanıtı döndürebilirsiniz. Hata yanıtları başlıklı makaleye göz atın.

Kullanıcı 333222
Google Assistant Maalesef güvenlik kodu yanlış. Güvenlik kodunu alabilir miyim?
İstek
{
  "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"
          }
        }]
      }]
    }
  }]
}
Yanıt
{
  "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.
İstek
{
  "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"
          }
        }]
      }]
    }
  }]
}
Yanıt
{
  "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?
İstek
{
  "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
          }
        }]
      }]
    }
  }]
}
Yanıt
{
  "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ı. 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.