الإشعارات الفورية

يمكن أن يرسل الإجراء الخاص بك إشعارات للمستخدمين عند اللزوم، مثل إرسال تذكير عند اقتراب تاريخ إنجاز مهمة.

يوضّح هذا الدليل كيفية إعداد الإشعارات الفورية للإجراء الخاص بك.

مساحات العرض المتوافقة

تتوفّر الإشعارات الفورية على أجهزة Android وiOS (يجب تثبيت تطبيق "مساعد Google" على أجهزة iOS لتلقّي الإشعارات الفورية). لا يمكن حاليًا استخدام هذه الميزة على مكبّرات الصوت التي يتم تفعيل الصوت فيها أو الشاشات الذكية أو مساحات العرض الأخرى.

المتطلبات الأساسية

يجب أن يتضمّن مشروعك هدفًا عالميًا واحدًا على الأقل، يتم استدعاءه عندما ينقر المستخدم على إشعار فوري تم استلامه من "مساعد Google".

البدء

توضّح الأقسام التالية كيفية إعداد الإشعارات الفورية في الإجراء الخاص بك.

إنشاء نية لبدء التشغيل

إنّ الغرض من إنشاء هذا القسم هو تفعيل الإشعارات. لإنشاء هذا الغرض، اتّبِع الخطوات التالية:

  1. انتقِل إلى وحدة تحكّم الإجراءات وانقر على تطوير في القائمة في أعلى الصفحة.
  2. انقر على الأهداف في القائمة اليمنى لتوسيع القسم.
  3. انقر على في أسفل القائمة وأدخِل اسمًا للغرض الجديد.
  4. اضغط على Enter/Return لإنشاء هدف جديد.
  5. أضِف عبارات تدريب لتحفيز تدفق الإشعارات. تشمل بعض الأمثلة:

    • Notify me
    • Send notifications
    • Subscribe to notifications
  6. انقر على حفظ.

الانتقال إلى هدف النظام

لإعداد الانتقال إلى مشهد النظام Notifications، اتّبِع الخطوات التالية:

  1. ضمن مشاهد في القائمة اليمنى، انقر على المشهد الذي تريد إضافة تدفق اشتراك الإشعارات إليه.
  2. ضمن القسم التعامل مع نيّة المستخدم في المشهد، انقر على + لإضافة معالج غرض جديد.
  3. ضمن Intent، اختَر الغرض الذي أنشأته في القسم السابق.
  4. ضمن النقل، اختَر مشهد نظام الإشعارات.

  5. انقر على حفظ.

ضبط إعدادات المشهد في النظام

لضبط مشهد نظام Notifications، اتّبِع الخطوات التالية:

  1. ضمن لقطات في القائمة اليمنى، حدد مشهد نظام الإشعارات الجديد.
  2. ضمن قسم إعداد الغرض، انقر على اختيار هدف.
  3. ضمن القسم اختيار الغرض، اختَر الغرض الذي تريد مطابقته عندما ينقر المستخدِم على إشعار فوري.

  4. في حقل تخصيص طلب الموافقة، أدخِل طلبًا يتم عرضه للمستخدمين عندما يُطلب منهم الاشتراك في الإشعارات الفورية. تكون رسالة المطالبة في شكل "هل يمكن أن أرسل إشعارات فورية لطلب $prompt"؟

  5. انقر على حفظ.

ضبط الموافقة

لضبط تفعيل الإشعارات الفورية، اتّبِع الخطوات التالية:

  1. ضمن اللقطات، حدد مشهد نظام الإشعارات.
  2. ضِمن الشروط، اختَر إذا قال المستخدم "نعم".
  3. فعِّل الاتصال للردّ التلقائي على الويب وأدخِل اسم معالج أحداث، مثل 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. ضمن النقل، اختَر إنهاء المحادثة لإنهاء المحادثة بعد إيقاف المستخدم للإشعارات.

ضبط الرد التلقائي على الويب

لضبط الرد التلقائي على الويب، اتّبِع الخطوات التالية:

  1. في الرد التلقائي على الويب، أضِف معالج أهداف لتخزين 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. لاستخدام واجهة برمجة التطبيقات هذه، عليك تفعيلها في مشروعك على Google Cloud وإعداد مفتاح حساب خدمة JSON وتنزيله.

يمكنك بعد ذلك استخدام مكتبة عملاء Google OAuth2 لاستبدال مفتاح حساب الخدمة برمز الدخول واستخدام الرمز المميّز لمصادقة طلباتك من Actions API.

الحصول على مفتاح حساب خدمة

  1. انتقِل إلى وحدة تحكُّم Google API واختَر مشروعك من القائمة المنسدلة اختيار مشروع.
  2. انقر على تفعيل لتفعيل واجهة برمجة التطبيقات Actions API لمشروعك.
  3. انتقِل إلى صفحة بيانات اعتماد Google Cloud Console واختَر مشروعك من القائمة المنسدلة اختيار مشروع.
  4. انقر على إنشاء بيانات اعتماد > حساب الخدمة.
  5. أدخِل اسم حساب الخدمة وانقر على إنشاء.
  6. من القائمة المنسدلة اختيار دور، اختَر المشروع > المالك.
  7. انقر على متابعة.
  8. انقر على إنشاء مفتاح لتنزيل ملف JSON لحساب الخدمة.

استبدال المفتاح برمز وصول وإرسال إشعار

لإرسال إشعارات فورية من خلال Actions API، عليك استبدال مفتاح حساب الخدمة برمز وصول. ننصحك باستخدام مكتبة عميل واجهة Google API لإجراء ذلك. في سلسلة مقتطفات الرمز التي تليها، نستخدم مكتبة عملاء Node.js لواجهة برمجة تطبيقات Google.

  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));
      });
    });