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

الردّ التلقائي على الويب هو معاودة اتصال عبر HTTPS ينشئها الشريك وتحدّد كيفية استجابة وكيلك للرسائل والأحداث. بعد ضبط الرد التلقائي على الويب، يمكنك بدء استلام الرسائل والأحداث.

الردود التلقائية على الويب الخاصة بالشركاء والردود التلقائية على الويب للوكيل

يمكنك ضبط الرد التلقائي على الويب إما على مستوى الشريك أو على مستوى الوكيل.

في حال ضبط كل من الرد التلقائي على الويب الخاص بالشريك والرد التلقائي على الويب الخاص بالوكيل، تكون الأولوية لالرد التلقائي على الويب الخاص بالوكيل على وكيله المحدّد، في حين ينطبق الردّ التلقائي على الويب الخاص بالشريك على جميع موظّفي الدعم الذين ليس لديهم ردّ تلقائي على الويب خاص بهم.

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

ستتلقّى الرسائل المُرسَلة إلى وكيلك عند الرد التلقائي على الويب الخاص بالشريك. إذا كنت تريد بدلاً من ذلك أن تصل رسائل وكيل معيّن إلى ردّ تلقائي على الويب مختلف، يمكنك ضبط ردّ تلقائي على الويب للوكيل.

  1. افتح وحدة تحكم مطوّر البرامج في Business Communications وسجِّل الدخول باستخدام حساب Google الذي يضم شريك RBM.
  2. انقر على الوكيل.
  3. انقر على عمليات الدمج.
  4. بالنسبة إلى الردّ التلقائي على الويب، انقر على ضبط.
  5. بالنسبة إلى عنوان URL لنقطة نهاية الردّ التلقائي على الويب، أدخِل عنوان URL للردّ التلقائي على الويب الذي يبدأ بـ "https://".
  6. دوِّن قيمة clientToken. ستحتاج إليه للتأكّد من أنّ الرسائل التي تتلقّاها واردة من Google.
  7. اضبط الرد التلقائي على الويب لقبول طلب POST باستخدام مَعلمة clientToken المحدّدة وإرسال ردّ 200 OK مع قيمة النص العادي للمَعلمة secret باعتباره نص الاستجابة.

    على سبيل المثال، إذا تلقّى الرد التلقائي على الويب طلب POST يتضمن محتوى النص التالي

    {
      "clientToken":"SJENCPGJESMGUFPY",
      "secret":"1234567890"
    }
    

    بعد ذلك، يجب أن يؤكّد الردّ التلقائي على الويب قيمة clientToken، وإذا كان clientToken صحيحًا، اعرض الردّ 200 OK مع تضمين 1234567890 كنص الاستجابة:

    // clientToken from Configure
    const myClientToken = "SJENCPGJESMGUFPY";
    
    // Example endpoint
    app.post("/rbm-webhook", (req, res) => {
      const msg = req.body;
      if (msg.clientToken === myClientToken) {
          res.status(200).send(msg.secret);
          return;
      }
      res.send(400);
    });
    
  8. في Play Console، انقر على إثبات الملكية. عندما تتحقّق ميزة RBM من الردّ التلقائي على الويب، يتم إغلاق مربّع الحوار.

التحقُّق من الرسائل الواردة

بما أنّ الردود التلقائية على الويب يمكن أن تتلقّى رسائل من أي مُرسِلين، عليك التأكّد من أن Google أرسلت رسائل واردة قبل معالجة محتوى الرسائل.

للتحقّق من أنّ Google أرسلت رسالة تلقّيتها، اتّبِع الخطوات التالية:

  1. استخرِج عنوان X-Goog-Signature للرسالة. هذه نسخة مجزّأة بترميز base64 من حمولة نص الرسالة.
  2. فك ترميز حمولة RBM في العنصر message.body ضمن الطلب استنادًا إلى ترميز Base-64.
  3. باستخدام الرمز المميّز للعميل الخاص بالردّ التلقائي على الويب (الذي حدّدته عند إعداد الردّ التلقائي على الويب) كمفتاح، أنشِئ خوارزمية SHA512 HMAC بوحدات البايت الخاصة بحمولة الرسالة الأساسية التي تم فك ترميزها باستخدام base64 وترميز النتيجة باستخدام base64.
  4. قارِن تجزئة X-Goog-Signature بالتجزئة التي أنشأتها.
    • في حال تطابقت علامات التجزئة، يعني ذلك أنّك أكّدت أنّ Google أرسل الرسالة.
    • وإذا لم تتطابق التجزئات، تحقَّق من عملية التجزئة في رسالة معروفة بأنّها جيدة.

      إذا كانت عملية التجزئة تعمل بشكل صحيح وتلقيت رسالة تعتقد أنّه تم إرسالها إليك بطريقة احتيالية، يُرجى التواصل معنا.

Node.js

  if ((requestBody.hasOwnProperty('message')) && (requestBody.message.hasOwnProperty('data'))) {
    // Validate the received hash to ensure the message came from Google RBM
    let userEventString = Buffer.from(requestBody.message.data, 'base64');
    let hmac = crypto.createHmac('sha512', CLIENT_TOKEN);
    let data = hmac.update(userEventString);
    let genHash = data.digest('base64');
    let headerHash = req.header('X-Goog-Signature');

    if (headerHash === genHash) {
      let userEvent = JSON.parse(userEventString);

      console.log('userEventString: ' + userEventString);
      handleMessage(userEvent);
    } else {
      console.log('hash mismatch - ignoring message');
    }
  }

  res.sendStatus(200);
  

الخطوات التالية

بعد إعداد الرد التلقائي على الويب، يمكن لوكيلك استلام الرسائل من أجهزتك الاختبارية. يمكنك إرسال رسالة للتحقّق من صحة الإعداد.