Ev depolama alanı

Webhook çağrısında, parametre değerlerini aynı hanedeki birden çok oturumda depolayabilirsiniz (Home Graph'e göre) ev depolama alanında. İşleminiz daha sonra bu depolanan değerleri istemlerde ve koşullarda kullanabilir. Webhook kodunuz da gerektiğinde belirli bir hane için ev depolama alanındaki değerlere erişebilir.

Ev depolama alanının durumu app.handle() isteğinde iletilir ve home nesnesinde depolanır.

Sınırlamalar

Ev depolama alanı, Home Graph'in parçası olmadıkları için mobil cihazlarla kullanılamaz. Webhook kodunuzda, iş mantığını kullanıcının cihazının yapabileceklerine göre kollara ayırmak için HOME_STORAGE cihaz özelliğini kullanın.

Ev depolama alanını kullanmak için etkinleştirmeniz gerekir:

  1. Actions konsolunda, Dağıt > Dizin bilgileri'ne gidin.
  2. Ek Bilgiler bölümünde, Evde depolama alanı kutusunu işaretleyin.

Hanede veri okuma ve yazma

Ev depolama alanını güncellemek veya yeni bir değer ayarlamak için bu değeri webhook çağrısında home nesnesinin params alanına atayın. Aşağıdaki örnekte, "exampleColor" ev depolama alanında "red" olarak ayarlanmaktadır:

Node.js

// Assign color to home storage
app.handle('storeColor', conv => {
  let color = 'red';
  conv.home.params.exampleColor = color;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {
        "exampleColor": "red"
      }
    }
  }
}
    

Home depolama alanında depolanan verilere erişmek için bu verileri webhook çağrısındaki bir değişkene atayın. Aşağıdaki örnek, ev depolama alanındaki "exampleColor" öğesinden bir değer alır:

Node.js

// Retrieve color from home storage
app.handle('getStoredColor', conv => {
  let color = conv.home.params.exampleColor;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {
        "homeColor": "red"
      }
    }
  }
}
    

Daha önce kaydedilmiş bir değeri temizlemek için bir webhook çağrısında değeri null olarak ayarlayın. Aşağıdaki örnekte, ev depolama alanındaki "exampleColor" değeri temizlenir:

Node.js

// Clear color from home storage
app.handle('clearStoredColor', conv => {
  conv.home.params.exampleColor = null;
});
    

JSON


{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {}
    }
  }
}
    

İstemlerde depolanan değerlere referans verme

Ev depolama alanında depolanan değerlere bir istemde başvurabilirsiniz. Değere referans vermek için $home.params.PARAMETER_NAME söz dizimini kullanın. Burada PARAMETER_NAME, parametre ayarlandığında webhook'ta verilen addır.

Örneğin, daha önce ev depolama alanında exampleColor parametresi olarak bir renk değeri depolamıştınız. Bir istemde bu değere erişmek için $home.params.exampleColor kullanarak söz konusu değere başvurursunuz:

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Your favorite color is $home.params.exampleColor."
      }]
    }
  }]
}
    

Koşullar dahilinde saklanan değerlere referans ver

Ev depolama alanında depolanan değerlere conditions durumunda da başvurabilirsiniz. Değere referans vermek için home.params.PARAMETER_NAME söz dizimini kullanın. Burada PARAMETER_NAME, parametre ayarlandığında webhook'ta verilen addır.

Örneğin, daha önce ev depolama alanında exampleColor parametresi olarak bir renk değerini depoladığınızı ve bu değeri koşulda "red" değeriyle eşleştirmek istediğinizi varsayalım. Koşulunuzda, depolanan değere home.params.exampleColor kullanarak referans verirsiniz. Bu durumda koşul ifadeniz şöyle görünür:

Koşul söz dizimi

home.params.exampleColor == "red"
    

Ev depolama verilerinin geçerlilik süresi

Ev depolama alanı verileri, İşlem çağrılmadığı tarihten 90 gün sonra silinir. Home Graph yapısıyla ilişkili herhangi bir cihazda İşlem çağrıldığında 90 günlük zamanlayıcı sıfırlanır. Home Graph yapısı silinirse ilgili ev depolama verileri de silinir.

Ev depolama alanını kullanan işlemler için Home Graph yapısı yöneticileri, yönettikleri yapılar için ev depolama alanını Asistan dizinindeki İşlem sayfasından temizleyebilir:

  1. Görüntülemek veya kullanıcı depolama alanınızı temizlemek istediğiniz işlemi bulup seçin.
  2. Sayfanın alt kısmına gidin:
    • Ev depolama alanında saklanan verileri kaldırmak için action_name adlı kullanıcının beni hatırlamasını durdur'u tıklayın.

Bir cihazın yöneticisi, cihazı yapıyla bağlantısını kestiğinde evdeki depolama alanının da ilişkisi kesilir. Evdeki depolama verileri, yapı yöneticisi değişse bile (bir yapı yöneticisi tarafından temizlemediği sürece) bir cihazla ilişkilendirilmeye devam eder.

Simülatörde ev depolama verileri

İşleminizi Actions konsolunda simülatörü kullanarak test ederken, ev depolama alanında depolanan veriler, fiziksel bir cihazdakinden biraz farklı davranır. Simülatör kendi Home Graph'in bir parçası olarak kabul edilir. Dolayısıyla veriler, ağınızdaki diğer cihazlarda kalır. Ayrıca, doğrulanmamış kullanıcıyı simüle et simülasyon aracı ayarı etkinleştirildiğinde ev depolama alanı verileri oturumlar genelinde korunmaz.

Örnek etkileşim

Aşağıda, oturum açmış bir kullanıcının İşlemi ilk çağrısında gerçekleşen örnek bir etkileşim verilmiştir:

Kullanıcı sorgusu Ok Google, Ornekİşlem ile konuş.
Asistan yanıtı Örnekİşlem Alma.
Asistan yanıtı Örnekİşlem, her oynatıldığında kaydedildiğinden hanenizdeki diğer kullanıcıların kaldığınız yerden devam edebileceğini hatırlatmak isteriz.
Örnekİşlem yanıtı Merhaba doğrulanmış kullanıcı. 0. seviyedesiniz. Sonraki, sıfırla veya iptal deyin.
Kullanıcı sorgusu Sonraki.
Örnekİşlem yanıtı 1. seviyedesiniz.
Kullanıcı sorgusu Ayrıl öğesine dokunun.

Ardından, aynı doğrulanmış kullanıcı bir süre sonra İşleme geri döndüğünde:

Kullanıcı sorgusu Ok Google, Ornekİşlem ile konuş.
Asistan yanıtı Örnekİşlem Alma.
Örnekİşlem yanıtı Merhaba doğrulanmış kullanıcı. 1. seviyedesiniz. Sonraki, sıfırla veya iptal deyin.
Kullanıcı sorgusu Sonraki.
Örnekİşlem yanıtı 2. seviyedesiniz.
Kullanıcı sorgusu Ayrıl öğesine dokunun.

Ertesi gün, doğrulanmamış bir kullanıcı aynı hanedeki (Home Graph'te belirtildiği şekilde) başka bir cihazda İşlem ile etkileşimde bulunur.

Kullanıcı sorgusu Ok Google, Ornekİşlem ile konuş.
Asistan yanıtı Örnekİşlem Alma.
Asistan yanıtı Örnekİşlem, her oynatıldığında kaydedildiğinden hanenizdeki diğer kullanıcıların kaldığınız yerden devam edebileceğini hatırlatmak isteriz.
Örnekİşlem yanıtı Sayın misafir kullanıcı. 2. seviyedesiniz. Sonraki, sıfırla veya iptal deyin.
Kullanıcı sorgusu Sonraki.
Örnekİşlem yanıtı 3. seviyedesiniz.
Kullanıcı sorgusu Ayrıl öğesine dokunun.