Akıllı ev işlemlerinin nasıl geliştirileceğini öğrenmek için yeni adres olan Google Home Geliştirici Merkezi'ne hoş geldiniz. Not: Actions Console'da işlem oluşturmaya devam edersiniz.

İkincil Kullanıcı Doğrulaması

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

İkincil kullanıcı doğrulaması, sesli komutlara iki faktörlü güvenlik eklemenizi sağlar. Bu, güvenlik kamerasını devre dışı bırakma veya kapı açma gibi belirli işlemler için ek güvenlik eklemenizi sağlar. İkincil kullanıcı doğrulaması, belirli bir cihaz özelliğine bağlı olmadığından Google Assistant issue a challenge. For example, you can choose to issue a challenge for the OnOff trait for a security camera, but not issue a challenge for the OnOff trait for a light. You can also have Assistant issue challenges in certain situations for the same action. For example, you can request that Assistant issue a challenge request to open a door if an NFC keyfob is not in the proximity of that door, but not issue a challenge if the keyfob is present. ürününü ne zaman kullanacağınıza karar verebilirsiniz.

Assistant iki tür sorgulama gerçekleştirebilir: açık onay veya kişisel kimlik numarası (PIN). Bu işlem, QUERY ve Assistant amaçlarına yönelik olarak EXECUTE bölümünden aldığınız bir işlem bloğunu ekler ve challengeNeeded hata yanıtı kabul eder. Assistant daha sonra, intent bloğunu meydan okuma bloğundaki meydan okuma verileriyle işleminize geri gönderir. Ardından, kullanıcının doğru güvenlik yanıtını verip vermediğini belirlemek için meydan okuma verilerini doğrulayabilirsiniz.

Assistant, giriş sorgulamasını yapmak için iletişim kutusunu kullanır ancak Assistant sessiz 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 meydan okuma türleri

Desteklenen ikincil kullanıcı doğrulama sorgulaması türleri şunlardır:

  • Meydan okuma: İkincil kullanıcı doğrulama sorgulaması kullanmayan istek ve yanıtlardır.
  • ack Needed - Açıkça onay (evet veya hayır) gerektiren ve aynı zamanda yanıt geri bildirimi olarak özellik durumlarını da kullanabilen ikincil kullanıcı doğrulaması. Bu sorgulama türü, güvenlik cihazları ve özellikler için önerilmez.
  • pin Needed: Güvenlik cihazları ve özellikleri için ideal olan kişisel kimlik numarası (PIN) gerektiren ikincil bir kullanıcı doğrulamasıdır.

Yarışma yok

Bu örnekte, ışıkları açmayla ilgili bir sorun olmadan EXECUTE isteğinin ve yanıtı başarılıdır.

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

Onay 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 meydan okuma türü türleri vardır:

"Basit" gerekli

Bu örnekte, basit bir istek ve yanıtta, ışığı karartma ackNeeded ve ışığı karartma onayı gösteriliyor.

Kullanıcı Salonun ışığını karart.
Google Assistant Salonun ışığı karartılıyor. Emin misiniz?
Kullanıcı Evet.
Google Assistant Salonun ışığı karartı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"
    }]
  }
}

ack TRY gerekiyor

Bir özellik için durumları kullanabilen, ikincil kullanıcı onayı kimlik doğrulaması. Örneğin, Sıcaklık Ayarı özelliğiyle çalışıyorsanız hem thermostatMode hem de thermostatTemperatureSetpoint ayarlanmışsa Assistant şunu sorabilir: Klimanın ısısını 28 dereceye ayarlamak istediğinizden emin misiniz?

Assistant öğesinin belirli bir isteğe göre belirli bir işlem gerçekleştirmesini sağlamak için yanıta bir durum da ekleyebilirsiniz.

Aşağıdaki özellikler ve eyaletler, özellik özelliklerine sahip ackNeeded özelliğini destekler. Belirli bir özelliğin listelenmesi, tüm durumlarının desteklendiğini gösterir.

Bu örnekte, özellik durumu kullanan bir ackNeeded sorgulaması ile istek ve yanıt gösterilmektedir. Klima modunu ısıtma moduna geçirir ve sıcaklığı 28 dereceye ayarlar. Ardından Assistant, kullanıcılardan sıcaklığın etkinleştirilmesini ve sıcaklığın 28 dereceye ayarlanmasını ister. thermostatTemperatureSetpoint şeklinde yanıt verildiğinde durum, kullanıcılardan 28 olarak ayarlanır.

Kullanıcı Klimayı ısıtma moduna ayarla.
Google Assistant Klimanın ısıtma sıcaklığını 28 dereceye ayarlamak istediğinizden emin misiniz?
Kullanıcı Evet.
Google Assistant. 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
      }
    }]
  }
}

Raptiye gerekiyor

Güvenlik cihazları için pinNeeded meydan okuması önerilir.

Bu örnekte ilk istek ve pinNeeded sorunuyla verilen 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ı, yanlış 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 kodunuzu 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 istek ve yanıt, challengeFailedPinNeeded sorgulamasıyla gösterilmektedir. Bu yarışma ilk pinNeeded görevi 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ı makaleyi inceleyin.

Kullanıcı 333222
Google Assistant Maalesef güvenlik kodu yanlış. Güvenlik kodunuzu 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ı 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ı karart.
Google Assistant Güvenlik kodunuzu 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ülen bazı hata kodları şunlardır:

  • challengeFailedNotSetup - Bu işlem için güvenlik kodu gerekiyor ama cihazının uygulamasında güvenlik kodu ayarlanmamış.
  • tooManyFailedAttempts - Maalesef çok fazla başarısız deneme oldu. 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.