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:
- Actions konsolunda, Dağıt > Dizin bilgileri'ne gidin.
- 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:
- Görüntülemek veya kullanıcı depolama alanınızı temizlemek istediğiniz işlemi bulup seçin.
- 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. |