Kullanıcı depolama alanı

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:

  1. Asistan dizinine gidin.
  2. Görüntülemek veya kullanıcı depolama alanınızı temizlemek istediğiniz işlemi bulup seçin.
  3. 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.