Penyimpanan rumah

Dalam panggilan webhook, Anda dapat menyimpan parameter value di beberapa sesi dalam rumah yang sama (berdasarkan Home Graph) di penyimpanan rumah. Action Anda kemudian dapat menggunakan nilai yang disimpan tersebut nanti dalam perintah dan kondisi, dan kode webhook Anda dapat mengakses nilai di penyimpanan rumah untuk rumah tangga tertentu jika diperlukan.

Status penyimpanan rumah diteruskan dalam permintaan app.handle() dan disimpan dalam objek home.

Batasan

Penyimpanan rumah tidak dapat digunakan dengan perangkat seluler, karena perangkat tersebut bukan bagian dari Grafik Beranda. Dalam kode webhook Anda, gunakan kemampuan perangkat HOME_STORAGE untuk mencabangkan logika bisnis berdasarkan kemampuan perangkat pengguna.

Anda harus memilih untuk menggunakan penyimpanan rumah:

  1. Di konsol Actions, buka Deploy > Directory information.
  2. Di bagian Additional Information, centang kotak Home storage.

Membaca dan menulis data dalam rumah tangga

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

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

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

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

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

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

Mereferensikan nilai yang disimpan dalam prompt

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

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

JSON

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

Mereferensikan nilai yang disimpan dalam kondisi

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

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

Sintaksis kondisi

home.params.exampleColor == "red"
    

Masa berlaku data penyimpanan rumah

Data penyimpanan rumah akan dihapus total setelah 90 hari berturut-turut Action tidak dipanggil. Memanggil Action di perangkat apa pun yang terkait dengan struktur Home Graph akan mereset timer 90 hari. Jika struktur Home Graph dihapus, data penyimpanan rumah yang sesuai akan dihapus.

Untuk Action yang menggunakan penyimpanan rumah, pengelola struktur Home Graph dapat menghapus penyimpanan rumah untuk struktur yang dikelola dari halaman Action di direktori Asisten:

  1. Cari dan pilih Action yang ingin Anda lihat atau hapus penyimpanan pengguna Anda.
  2. Scroll ke bagian bawah halaman:
    • Untuk menghapus data yang disimpan untuk Anda di penyimpanan rumah, klik Hentikan action_name mengingat saya.

Jika pengelola perangkat memisahkannya dari struktur, penyimpanan rumah juga dipisahkan. Data penyimpanan rumah akan terus dikaitkan dengan perangkat meskipun pengelola struktur berubah, kecuali jika pengelola struktur menghapusnya.

Data penyimpanan rumah di simulator

Saat menguji Action menggunakan simulator di Konsol Actions, data yang disimpan di penyimpanan rumah berperilaku sedikit berbeda dari perangkat fisik. Simulator dianggap sebagai bagian dari Home Graph-nya sendiri, sehingga data tidak dipertahankan di perangkat lain yang mungkin Anda miliki di jaringan Anda. Selain itu, data penyimpanan rumah tidak akan dipertahankan di seluruh sesi jika setelan simulator Simulasikan pengguna yang belum diverifikasi diaktifkan.

Contoh interaksi

Berikut adalah contoh interaksi pengguna yang login pada pemanggilan pertama Action:

Kueri pengguna Ok Google, bicara dengan ExampleAction.
Respons Asisten Mendapatkan ExampleAction.
Respons Asisten Sekadar informasi, ExampleAction akan disimpan setiap kali Anda memainkannya, sehingga orang lain di rumah dapat melanjutkan dari bagian terakhir yang Anda mainkan.
Respons ExampleAction Pengguna terverifikasi yang terhormat. Anda berada di level 0. Ucapkan berikutnya, reset, atau batalkan.
Kueri pengguna Berikutnya.
Respons ExampleAction Anda berada di level 1.
Kueri pengguna Keluar.

Kemudian, jika pengguna terverifikasi yang sama kembali ke Action setelah beberapa saat:

Kueri pengguna Ok Google, bicara dengan ExampleAction.
Respons Asisten Mendapatkan ExampleAction.
Respons ExampleAction Pengguna terverifikasi yang terhormat. Anda berada di level 1. Ucapkan berikutnya, reset, atau batalkan.
Kueri pengguna Berikutnya.
Respons ExampleAction Anda berada di level 2.
Kueri pengguna Keluar.

Hari berikutnya, pengguna yang belum terverifikasi berinteraksi dengan Action di perangkat lain dalam rumah tangga yang sama (seperti yang ditentukan di Home Graph).

Kueri pengguna Ok Google, bicara dengan ExampleAction.
Respons Asisten Mendapatkan ExampleAction.
Respons Asisten Sekadar informasi, ExampleAction akan disimpan setiap kali Anda memainkannya, sehingga orang lain di rumah dapat melanjutkan dari bagian terakhir yang Anda mainkan.
Respons ExampleAction Pengguna tamu yang terhormat, Anda berada di level 2. Ucapkan berikutnya, reset, atau batalkan.
Kueri pengguna Berikutnya.
Respons ExampleAction Anda berada di level 3.
Kueri pengguna Keluar.