התראות

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

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

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

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

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

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

שנתחיל?

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

יצירת כוונה להפעלה

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

  1. נכנסים למסוף הפעולות ולוחצים על פיתוח בתפריט העליון.
  2. לוחצים על הקטע Intents בתפריט הימני כדי להרחיב אותו.
  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. מפעילים את האפשרות התקשרות ל-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. מזינים שם לחשבון השירות ולוחצים על Create.
  6. בתפריט הנפתח Select a role, בוחרים Project > בעלים.
  7. לוחצים על המשך.
  8. לוחצים על Create key כדי להוריד את קובץ ה-JSON של חשבון השירות.

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

כדי לשלוח התראות דרך 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));
      });
    });