Penyimpanan pengguna

Pada panggilan webhook, Anda dapat menyimpan parameter value untuk pengguna tertentu di seluruh sesi penyimpanan pengguna. Action Anda kemudian dapat menggunakan nilai yang disimpan tersebut nanti perintah 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 di penyimpanan pengguna, tetapkan nilai ke params dari objek user dalam panggilan webhook. Contoh berikut menetapkan "contohWarna" menjadi "merah" 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 data ke variabel di webhook panggilan telepon. Contoh berikut mengambil nilai dari "exampleColor" dalam pengguna penyimpanan:

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 di 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 tersimpan dalam perintah

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

Misalnya, Anda sebelumnya menyimpan nilai warna di penyimpanan pengguna sebagai parameter exampleColor. Untuk mengakses nilai tersebut di prompt, Anda merujuk ke nilai menggunakan $user.params.exampleColor:

JSON

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

Mereferensikan nilai tersimpan dalam kondisi

Anda juga dapat mereferensikan nilai yang disimpan dalam penyimpanan pengguna dalam kondisi. Kepada merujuk ke nilai, gunakan user.params.PARAMETER_NAME sintaksis, dengan PARAMETER_NAME adalah nama yang diberikan dalam webhook saat parameter ditetapkan.

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

Sintaksis kondisi

user.params.exampleColor == "red"
    

Akhir masa berlaku data penyimpanan pengguna

Untuk pengguna terverifikasi, data yang disimpan dalam penyimpanan pengguna akan berakhir berdasarkan tanggal Web & Setelan Aktivitas Aplikasi Anda dan juga dapat dihapus oleh Tindakan itu sendiri. Untuk pengguna yang tidak diverifikasi, Asisten menghapus isi penyimpanan pengguna di akhir percakapan.

Actions on Google menetapkan status verifikasi pengguna di setiap awal 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 layanan Web & Aktivitas Aplikasi. Perlu diingat bahwa beberapa pengguna mungkin telah menonaktifkan pengaturan ini di tingkat domain.
  • Jika perangkat telah mengaktifkan Voice Match, dan pencocokan gagal atau pengguna memanggil Asisten tanpa menggunakan suaranya (seperti menekan lama pada Nest Home perangkat).
  • Pengguna belum login.

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

Visibilitas ke pengguna

Sebagai pengguna, Anda dapat melihat data yang tersimpan di penyimpanan pengguna untuk Action yang Anda panggil. Anda juga dapat menghapus data yang disimpan dalam penyimpanan pengguna dari Action tertentu atau membuat layanan berhenti mengingat Anda.

Untuk melihat data yang tersimpan atau menghentikan layanan mengingat Anda, ikuti langkah:

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