Webhook çağrısında, belirli bir kullanıcıya ait parametre değerlerini kullanıcının depolama alanındaki oturumlar genelinde depolayabilirsiniz. Ardından işleminiz bu depolanan değerleri daha sonra istemlerde ve koşullarda kullanabilir ve webhook kodunuz gerektiğinde belirli bir kullanıcının depolama alanındaki değerlere erişebilir.
Kullanıcı depolama alanı durumu bir app.handle()
isteğinde iletilir ve user
nesnesinde depolanır.
İleti dizilerinde veri okuma ve yazma
Kullanıcı depolama alanını güncellemek veya yeni bir değer ayarlamak için değeri bir webhook çağrısında user
nesnesinin params
alanına atayın. Aşağıdaki örnekte, kullanıcı depolama alanında "exampleColor" "red" olarak ayarlanmaktadır:
Node.js
// Assign color to user storage app.handle('storeColor', conv => { let color = 'red'; conv.user.params.exampleColor = color; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "user": { "locale": "en-US", "params": { "verificationStatus": "VERIFIED", "exampleColor": "red" } } } }
Kullanıcı depolama alanında depolanan verilere erişmek için verileri webhook çağrısındaki bir değişkene atayın. Aşağıdaki örnek, kullanıcı depolama alanındaki "exampleColor" öğesinden bir değer alır:
Node.js
// Retrieve color from user storage app.handle('getStoredColor', conv => { let color = conv.user.params.exampleColor; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "user": { "locale": "en-US", "params": { "verificationStatus": "VERIFIED", "exampleColor": "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, kullanıcı depolama alanındaki "exampleColor" değeri temizlenir:
Node.js
// Clear color from user storage app.handle('clearStoredColor', conv => { conv.user.params.exampleColor = null; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "user": { "locale": "en-US", "params": { "verificationStatus": "VERIFIED" } } } }
İstemlerde depolanan değerlere referans verme
Kullanıcı depolama alanında depolanan değerlere bir istemde başvurabilirsiniz. Değere referans vermek için $user.params.PARAMETER_NAME
söz dizimini kullanın. Burada PARAMETER_NAME
, parametre ayarlandığında webhook'ta verilen addır.
Örneğin, daha önce kullanıcı depolama alanında exampleColor
parametresi olarak bir renk değeri depolamıştınız. Bir istemde bu değere erişmek için $user.params.exampleColor
kullanarak söz konusu değere başvurursunuz:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $user.params.exampleColor." }] } }] }
Koşullar dahilinde saklanan değerlere referans ver
Kullanıcı depolama alanında depolanan değerlere, conditions da başvurabilirsiniz. Değere referans vermek için user.params.PARAMETER_NAME
söz dizimini kullanın. Burada PARAMETER_NAME
, parametre ayarlandığında webhook'ta verilen addır.
Örneğin, daha önce kullanıcı depolama alanında exampleColor
parametresi olarak bir renk değerini depoladığınızı ve bunu bir koşulda "red" değeriyle eşleştirmek istediğinizi varsayalım. Koşulunuzda, depolanan değere user.params.exampleColor
kullanarak referans verirsiniz. Bu durumda koşul ifadeniz aşağıdaki gibi görünür:
Koşul söz dizimi
user.params.exampleColor == "red"
Kullanıcı depolama alanı verilerinin geçerlilik süresi
Doğrulanmış kullanıcılar için, kullanıcı depolama alanında depolanan verilerin süresi Web ve Uygulama Etkinliği ayarlarına bağlı olarak dolar. Bu veriler İşlem tarafından da temizlenebilir. Asistan, doğrulanmamış kullanıcılarla ilgili olarak görüşmenin sonunda kullanıcının depolama alanı içeriğini temizler.
Actions on Google, görüşme başladığında çeşitli göstergelere dayanarak her görüşmenin başında kullanıcının doğrulama durumunu ayarlar. Örneğin, mobil cihazında Google Asistan'a giriş yapan bir kullanıcının doğrulama durumu VERIFIED
olur.
Bir kullanıcının doğrulama durumunun GUEST
olmasının olası nedenleri aşağıda belirtilmiştir:
- Kullanıcı, kişisel sonuçları devre dışı bıraktı.
- Kullanıcı, Web ve Uygulama Etkinliği'ni devre dışı bıraktıysa. Bazı kullanıcıların bu ayarın alan düzeyinde devre dışı bırakılmış olabileceğini unutmayın.
- Bir cihazda Voice Match etkinleştirilmişse ve eşleşme başarısız olursa ya da kullanıcı, sesini kullanmadan Asistan'ı çağırırsa (ör. Nest Home cihazına uzun basma).
- Kullanıcı oturum açmamış.
Misafir kullanıcıların kendileri için başarısız olacak bir özellikle etkileşimde bulunmasını önlemek amacıyla verileri kullanıcı depolama alanına depolamadan önce her zaman kullanıcının doğrulama durumunu kontrol edin.
Kullanıcıların görünürlüğü
Kullanıcı olarak, çağırdığınız İşlemler için kullanıcı depolama alanınızda depolanan verileri görüntüleyebilirsiniz. Ayrıca, kullanıcı depolama alanınızda depolanan verileri belirli bir İşlemden kaldırabilir veya hizmetin sizi hatırlamasını durdurabilirsiniz.
Depolanan verilerinizi görüntülemek veya bir hizmetin sizi hatırlamasını durdurmak için şu adımları uygulayın:
- Asistan dizinine gidin.
- 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:
- Kullanıcı depolama alanınızın içeriğini görüntülemek için [Depolanan verileri göster] seçeneğini tıklayın.
- Hizmet için kullanıcı depolama alanınızda depolanan verileri sıfırlamak üzere Sıfırla'yı tıklayın.
- Kullanıcı depolama alanınızda depolanan verileri kaldırmak ve hizmetin sizi hatırlamasını durdurmak için action_name adlı işlemin beni hatırlamasını durdur'u tıklayın.