התראות

הפעולה יכולה לשלוח התראות למשתמשים בכל פעם שהדבר רלוונטי, למשל שליחת תזכורת כשתאריך היעד של המשימה מתקרב.

במדריך הזה מוסבר איך להגדיר התראות על פעולה מסוימת.

פלטפורמות נתמכות

התראות זמינות במכשירי Android ו-iOS (כדי לקבל התראות, אפליקציית Assistant צריכה להיות מותקנת במכשירי iOS). הם לא נתמכים כרגע ברמקולים עם הפעלה קולית, במסכים חכמים או בפלטפורמות אחרות.

דרישות מוקדמות

הפרויקט צריך לכלול לפחות כוונה גלובלית אחת, שמופעלת כשהמשתמש מקיש על התראה שמתקבלת מ-Assistant.

שנתחיל?

בקטעים הבאים מוסבר איך להגדיר התראות בפעולה.

יצירת Intent להפעלה

הכוונה שאתם יוצרים בקטע הזה מפעילה את זרימת ההתראות. כדי ליצור את ה-Intent הזה:

  1. נכנסים לקונסולה ל-Actions ולוחצים על פיתוח בתפריט העליון.
  2. לוחצים על אובייקטים של Intent בתפריט הימני כדי להרחיב את הקטע.
  3. לוחצים על ה- בתחתית הרשימה ומזינים שם ל-Intent החדש.
  4. יש ללחוץ על Enter/Return כדי ליצור את ה-Intent החדש.
  5. יש להוסיף ביטויי אימון להפעלת זרימת ההתראות. לפניכם מספר דוגמאות:

    • Notify me
    • Send notifications
    • Subscribe to notifications
  6. לוחצים על שמירה.

מעבר אל המערכת Intent

כדי להגדיר את המעבר לסצנת המערכת של Notifications, יש לפעול לפי השלבים הבאים:

  1. בקטע סצנות שבתפריט הימני, לוחצים על הסצנה שאליה רוצים להוסיף את תהליך ההרשמה לקבלת התראות.
  2. בקטע טיפול בכוונת משתמש בסצנה, לוחצים על + כדי להוסיף handler חדש של Intent.
  3. בקטע Intent, בוחרים את הכוונה שיצרתם בקטע הקודם.
  4. בקטע מעבר, בוחרים בסצנת המערכת התראות.

  5. לוחצים על שמירה.

הגדרה של סצנת המערכת

כדי להגדיר את סצנת המערכת של Notifications, יש לפעול לפי השלבים הבאים:

  1. בקטע סצנות בתפריט הימני, בוחרים את סצנת המערכת החדשה של ההתראות.
  2. בקטע הגדרת כוונה, לוחצים על בחירת Intent.
  3. בקטע בחירת כוונה, בוחרים את הכוונה שרוצים לתת לה התאמה כשמשתמש מקיש על התראה.

  4. עבור בקשת הסכמה להתאמה אישית של בקשת ההצטרפות, מזינים הנחיה שתוצג למשתמשים כשהם יתבקשו להירשם לקבלת התראות. השאלה היא מסוג "האם זה בסדר אם אשלח התראות על $prompt".

  5. לוחצים על שמירה.

הגדרת הצטרפות

כדי להגדיר הסכמה לקבלת התראות, פועלים לפי השלבים הבאים:

  1. בקטע סצנות, בוחרים בסצנת המערכת התראות.
  2. בקטע תנאים, בוחרים באפשרות אם המשתמש עונה 'כן'.
  3. מפעילים את התכונה Call your webhook ונותנים שם של גורם מטפל באירועים, כמו subscribe_to_notifications.
  4. מפעילים את האפשרות שליחת הנחיות ומבקשים מהמשתמשים להודיע למשתמשים שהם יקבלו התראות:

    candidates:
    - first simple:
      variants:
      - speech: 'Great, I'll send you notifications.'
    
  5. בקטע מעבר, בוחרים באפשרות סיום השיחה כדי לסיים את השיחה אחרי שמשתמש נרשם לקבלת התראות.

הגדרת ביטול ההסכמה

כדי להגדיר את ביטול ההסכמה לקבלת התראות, יש לבצע את השלבים הבאים:

  1. בקטע תנאים, בוחרים באפשרות אם המשתמש עונה 'לא'.
  2. מפעילים את האפשרות שליחת הנחיות ומספקים בקשה פשוטה כדי ליידע את המשתמשים שלא יישלחו להם התראות:

    candidates:
    - first simple:
      variants:
      - speech: Okay, I won't send you notifications.
    
  3. בקטע מעבר, בוחרים באפשרות סיום השיחה כדי לסיים את השיחה אחרי שהמשתמש מבטל את הסכמתו להתראות.

הגדרת webhook

כדי להגדיר את ה-webhook, צריך לבצע את השלבים הבאים:

  1. ב-webhook, מוסיפים handler של Intent לאחסון של updatesUserId:

    app.handle('subscribe_to_notifications', conv => {
      const intentName = '<name_of_intent_to_trigger>';
      const notificationsSlot = conv.session.params['NotificationSlot_${intentName}'];
      if(notificationsSlot.permissionStatus == 'PERMISSION_GRANTED') {
        const updateUserId = notificationsSlot.additionalUserData.updateUserId;
        // Store the user ID and the notification's target intent for later use.
        // (Use a database, like Firestore, for best practice.)
      }
    });
    

שליחת התראות

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

לאחר מכן אפשר להשתמש בספריית הלקוח של Google OAuth2 כדי להמיר את המפתח של חשבון השירות באסימון גישה, ולהשתמש באסימון כדי לאמת את הבקשות ל-Actions API.

קבלת מפתח לחשבון שירות

  1. עוברים אל מסוף Google API ובוחרים את הפרויקט שלכם מהתפריט הנפתח Select a project.
  2. לוחצים על Enable (הפעלה) כדי להפעיל את Actions API בפרויקט.
  3. עוברים אל דף פרטי הכניסה במסוף Google Cloud ובוחרים את הפרויקט בתפריט הנפתח Select a project.
  4. לוחצים על Create credentials > חשבון שירות.
  5. נותנים שם לחשבון השירות ולוחצים על יצירה.
  6. בתפריט הנפתח בחירת תפקיד, בוחרים באפשרות פרויקט > בעלים.
  7. לוחצים על המשך.
  8. כדי להוריד את קובץ ה-JSON עם חשבון השירות, לוחצים על Create key.

להחליף את המפתח באסימון גישה ולשלוח התראה

כדי לשלוח התראות דרך Actions API, עליכם להחליף את המפתח של חשבון השירות באסימון גישה. לשם כך מומלץ להשתמש בספריית לקוח של Google API. בסדרת קטעי הקוד שלאחר מכן, אנחנו משתמשים בספריית הלקוח של Google API Node.js.

  1. מתקינים את ספריית הלקוח של Google API ומבקשים:

    npm install googleapis request --save

  2. יש להשתמש בקוד הבא כדי לקבל אסימון גישה מהמפתח של חשבון השירות ולשלוח התראה:

    // Use the Actions API to send a Google Assistant push notification.
    let client = auth.fromJSON(require('./service-account.json'));
    client.scopes = ['https://www.googleapis.com/auth/actions.fulfillment.conversation'];
    let notification = {
      userNotification: {
        title: 'Example notification title',
      },
      target: {
        userId: '<UPDATES_USER_ID>',
        intent: 'Notifications Intent',
      },
    };
    client.authorize((err, tokens) => {
      if (err) {
        throw new Error('Auth error: ${err}');
      }
      request.post('https://actions.googleapis.com/v2/conversations:send', {
        'auth': {
          'bearer': tokens.access_token,
        },
        'json': true,
        'body': {'customPushMessage': notification, 'isInSandbox': true},
      }, (err, httpResponse, body) => {
        if (err) {
          throw new Error('API request error: ${err}');
        }
        console.log('${httpResponse.statusCode}: ' + '${httpResponse.statusMessage}');
        console.log(JSON.stringify(body));
      });
    });