אחסון בבית

באמצעות קריאה לפעולה מאתר אחר (webhook) אפשר לשמור ערכי פרמטרים במספר סשנים באותו בית (על סמך תרשים הבית) באחסון הבית. לאחר מכן, הפעולה יכולה להשתמש בערכים השמורים האלה בהנחיות ובתנאים, וקוד ה-webhook יכול לגשת לערכים באחסון הבית של משק בית ספציפי במקרה הצורך.

המצב של האחסון הביתי מועבר בבקשת app.handle() והוא מאוחסן באובייקט home.

מגבלות

לא ניתן להשתמש באחסון בבית במכשירים ניידים כי הם לא חלק מתרשים הבית. בקוד של webhook, צריך להשתמש ביכולת המכשיר של HOME_STORAGE כדי להסתעף ללוגיקה עסקית על סמך מה שהמכשיר של המשתמש מסוגל לבצע.

עליך להביע הסכמה לשימוש באחסון הביתי:

  1. במסוף הפעולות, עבור אל פריסה > פרטי ספרייה.
  2. בקטע Additional Information, מסמנים את התיבה של Homestorage.

קריאה וכתיבה של נתונים בבית

כדי לעדכן או להגדיר ערך חדש באחסון הבית, צריך להקצות את הערך לשדה params של האובייקט home בקריאה ל-webhook. בדוגמה הבאה הערך "exampleColor" מוגדר ל-"red" באחסון הבית:

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

כדי לקבל גישה לנתונים שמאוחסנים באחסון בבית, צריך להקצות אותם למשתנה בקריאה לפעולה מאתר אחר (webhook). בדוגמה הבאה מאחזרים ערך מ-"exampleColor" באחסון ביתי:

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

כדי למחוק ערך שנשמר בעבר, צריך להגדיר את הערך כ-null בקריאה לפעולה מאתר אחר (webhook). הדוגמה הבאה מנקה את הערך של "exampleColor" באחסון הבית:

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

הפניה לערכים שמורים בהנחיות

אפשר להפנות לערכים שמאוחסנים באחסון הביתי בהודעה. כדי לציין את הערך צריך להשתמש בתחביר $home.params.PARAMETER_NAME, שבו PARAMETER_NAME הוא השם שניתן ב-webhook כשהפרמטר הוגדר.

לדוגמה, בעבר שמרתם ערך צבע באחסון הביתי כפרמטר exampleColor. כדי לגשת לערך הזה בהנחיה, צריך להפנות לערך הזה באמצעות $home.params.exampleColor:

JSON

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

הפניה לערכים שמורים בתוך התנאים

אפשר להפנות גם לערכים ששמורים באחסון הבית בקטע conditions. כדי להפנות לערך הזה צריך להשתמש בתחביר home.params.PARAMETER_NAME, שבו PARAMETER_NAME הוא השם שניתן ב-webhook כשהפרמטר הוגדר.

לדוגמה, בעבר אחסנתם ערך של צבע באחסון הביתי כפרמטר exampleColor, ואתם רוצים להתאים אותו לערך "red" בתנאי. בתנאי, צריך להפנות לערך המאוחסן באמצעות home.params.exampleColor. ביטוי התנאי נראה כך:

תחביר של תנאים

home.params.exampleColor == "red"
    

תפוגת התוקף של נתוני האחסון בבית

נתוני האחסון הביתי נמחקים אחרי 90 ימים רצופים שבהם לא הופעלה הפעולה. הפעלת הפעולה בכל מכשיר המשויך למבנה של Home Graph מאפס את הטיימר של 90 יום. אם נמחק מבנה ב-Home Graph, נתוני האחסון של הבית התואם נמחקים.

בפעולות שמשתמשות באחסון ביתי, מנהלי תרשים הבית יכולים לנקות את נפח האחסון של המבנים שהם מנהלים מדף הפעולה בספריית Assistant:

  1. מאתרים את הפעולה שרוצים להציג או לנקות עבורה את האחסון של המשתמש ובוחרים בה.
  2. גוללים לתחתית הדף:
    • כדי להסיר את הנתונים ששמורים באחסון הביתי, לוחצים על הפסקת האפשרות של action_name לזכור אותי.

כשמנהל המכשיר מנתק אותו מהמבנה, גם האחסון בבית מתנתק. נתוני האחסון בבית ממשיכים להיות משויכים למכשיר גם אם מנהל המבנה משתנה, אלא אם מנהל המבנה מוחק אותם.

נתוני נפח האחסון בבית בסימולטור

כשבודקים את הפעולה באמצעות הסימולטור בקונסולה ל-Actions, אופן הפעולה של נתונים שמאוחסנים באחסון הביתי שונה מעט מזה של מכשיר פיזי. הסימולטור נחשב לחלק מתרשים הבית שלו, כך שהנתונים לא נשמרים במכשירים אחרים שמחוברים לרשת. כמו כן, נתוני האחסון בבית לא נשמרים בסשנים שונים כשהגדרת הסימולטור סימולציה של משתמש לא מאומת מופעלת.

אינטראקציה לדוגמה

לפניכם אינטראקציה לדוגמה של משתמש מחובר בהפעלה הראשונה של הפעולה:

שאילתת משתמש Ok Google, Talk to ExampleAction.
התשובה של Assistant מקבל את ExampleAction.
התשובה של Assistant לידיעתך, התכונה ExampleAction נשמרת בכל פעם שאתה משחק בה, כך ששאר המשתמשים מאותו בית יכולים להמשיך מהמקום שבו הפסקת.
תגובה של ExampleAction שלום, משתמש מאומת. הגעת לרמה 0. אפשר לומר 'הבא', לאפס או לבטל.
שאילתת משתמש Next.‎
תגובה של ExampleAction הגעת לרמה 1.
שאילתת משתמש יציאה.

לאחר מכן, כשאותו משתמש מאומת חוזר לפעולה אחרי זמן מה:

שאילתת משתמש Ok Google, Talk to ExampleAction.
התשובה של Assistant מקבל את ExampleAction.
תגובה של ExampleAction שלום, משתמש מאומת. הגעת לרמה 1. אפשר לומר 'הבא', לאפס או לבטל.
שאילתת משתמש Next.‎
תגובה של ExampleAction הגעת לרמה 2.
שאילתת משתמש יציאה.

למחרת, משתמש לא מאומת מקיים אינטראקציה עם הפעולה במכשיר אחר באותו בית (כפי שמצוין בתרשים הבית).

שאילתת משתמש Ok Google, Talk to ExampleAction.
התשובה של Assistant מקבל את ExampleAction.
התשובה של Assistant לידיעתך, התכונה ExampleAction נשמרת בכל פעם שאתה משחק בה, כך ששאר המשתמשים מאותו בית יכולים להמשיך מהמקום שבו הפסקת.
תגובה של ExampleAction שלום, משתמש אורח. הגעת לרמה 2. אפשר לומר 'הבא', לאפס או לבטל.
שאילתת משתמש Next.‎
תגובה של ExampleAction הגעת לרמה 3.
שאילתת משתמש יציאה.