Penyimpanan pengguna

Dalam panggilan webhook, Anda dapat menyimpan parameter value untuk pengguna tertentu di seluruh sesi dalam penyimpanan pengguna. Action Anda kemudian dapat menggunakan nilai yang disimpan tersebut nanti dalam dialog dan kondisi, dan kode webhook Anda dapat mengakses nilai di penyimpanan pengguna untuk pengguna tertentu jika diperlukan.

Status penyimpanan pengguna diteruskan dalam permintaan app.handle() dan disimpan dalam objek user.

Membaca dan menulis data di seluruh percakapan

Untuk memperbarui atau menetapkan nilai baru dalam penyimpanan pengguna, tetapkan nilai ke kolom params dari objek user dalam panggilan webhook. Contoh berikut menetapkan "exampleColor" ke "red" dalam penyimpanan pengguna:

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"
      }
    }
  }
}
    

Untuk mengakses data yang disimpan di penyimpanan pengguna, tetapkan ke variabel dalam panggilan webhook. Contoh berikut mengambil nilai dari "exampleColor" di penyimpanan pengguna:

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"
      }
    }
  }
}
    

Untuk menghapus nilai yang disimpan sebelumnya, tetapkan nilai ke null dalam panggilan webhook. Contoh berikut menghapus nilai "exampleColor" dalam penyimpanan pengguna:

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"
      }
    }
  }
}
    

Mereferensikan nilai yang disimpan dalam prompt

Anda dapat mereferensikan nilai yang disimpan di penyimpanan pengguna di prompt. Untuk mereferensikan nilainya, gunakan sintaksis $user.params.PARAMETER_NAME, dengan PARAMETER_NAME adalah nama yang diberikan dalam webhook saat parameter ditetapkan.

Misalnya, sebelumnya Anda menyimpan nilai warna di penyimpanan pengguna sebagai parameter exampleColor. Untuk mengakses nilai tersebut dalam perintah, Anda mereferensikan nilai tersebut menggunakan $user.params.exampleColor:

JSON

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

Mereferensikan nilai yang disimpan dalam kondisi

Anda juga dapat mereferensikan nilai yang disimpan di penyimpanan pengguna dalam conditions. Untuk mereferensikan nilai, gunakan sintaksis user.params.PARAMETER_NAME, dengan PARAMETER_NAME adalah nama yang diberikan dalam webhook saat parameter ditetapkan.

Misalnya, sebelumnya Anda menyimpan nilai warna di penyimpanan pengguna sebagai parameter exampleColor, dan ingin mencocokkannya dengan nilai "red" dalam kondisi. Dalam kondisi Anda, Anda mereferensikan nilai yang disimpan menggunakan user.params.exampleColor. Ekspresi kondisi Anda akan terlihat seperti ini:

Sintaksis kondisi

user.params.exampleColor == "red"
    

Masa berlaku data penyimpanan pengguna

Bagi pengguna terverifikasi, data yang disimpan di penyimpanan pengguna akan habis masa berlakunya berdasarkan setelan Aktivitas Web & Aplikasi mereka dan juga dapat dihapus oleh Action itu sendiri. Untuk pengguna yang tidak diverifikasi, Asisten akan menghapus konten penyimpanan pengguna di akhir percakapan.

Actions on Google menetapkan status verifikasi pengguna di awal setiap percakapan berdasarkan berbagai indikator saat percakapan dimulai. Sebagai satu contoh, pengguna yang login ke Asisten Google di perangkat selulernya memiliki status verifikasi VERIFIED.

Berikut adalah kemungkinan alasan pengguna memiliki status verifikasi GUEST:

  • Pengguna telah menonaktifkan hasil personal.
  • Pengguna menonaktifkan Aktivitas Web & Aplikasi. Perlu diingat bahwa beberapa pengguna mungkin menonaktifkan setelan ini di tingkat domain.
  • Jika perangkat telah mengaktifkan Voice Match, dan pencocokan gagal atau pengguna memanggil Asisten tanpa menggunakan suaranya (seperti menekan lama di perangkat Nest Home).
  • Pengguna tidak login.

Selalu periksa status verifikasi pengguna sebelum menyimpan data dengan penyimpanan pengguna untuk mencegah pengguna tamu berinteraksi dengan fitur yang akan gagal bagi mereka.

Visibilitas kepada pengguna

Sebagai pengguna, Anda dapat melihat data yang disimpan di penyimpanan pengguna untuk Tindakan yang Anda panggil. Anda juga dapat menghapus data yang tersimpan di penyimpanan pengguna dari Action tertentu atau menghentikan layanan agar tidak mengingat Anda.

Untuk melihat data yang disimpan atau menghentikan layanan agar tidak mengingat Anda, ikuti langkah-langkah berikut:

  1. Buka direktori Assistant.
  2. Cari dan pilih Action yang ingin Anda lihat atau hapus penyimpanan pengguna Anda.
  3. Scroll ke bagian bawah halaman:
    • Untuk melihat isi penyimpanan pengguna Anda, klik [Lihat data yang disimpan].
    • Untuk mereset data yang disimpan di penyimpanan pengguna untuk layanan, klik Reset.
    • Untuk menghapus data yang disimpan di penyimpanan pengguna dan menghentikan layanan agar tidak mengingat Anda, klik Hentikan action_name mengingat saya.