خطافات الويب

تتيح لك خطافات الويب إرسال إشعارات في الوقت الفعلي للأحداث داخل tawk.to إلى الخدمات الخارجية. 

يمكنك اختيار إرسال حدث خطاف الويب في الحالات التالية:

  • عند بدء الدردشة
  • عند انتهاء الدردشة
  • عند إنشاء تذكرة واحدة

يتكون خطاف الويب من :

عند تشغيل خطاف الويب ، سيتم إجراء طلب النشر على عنوان URL الذي تم تكوينه مع حمولة JSON الخاصة بنوع الحدث.

إدارة خطافات الويب

يمكن إدارة خطافات تاويب عبر لوحة التحكم tawk.to في قسم “المشرف”.

الأحداث المدعومة حاليًا

يتم استدعاء وظائف رد الاتصال عندما تتغير حالة الصفحة. و ستحصل الوظيفة على الحالة التي تم تغييرها والتي ستكون إما متصل أو بعيد أو غير متصل.إن رد الاتصال هذا غير مدعوم في نافذة الدردشة المنبثقة.

الدردشة:

  • بداية
  • نهاية

التذكرة:

  • إنشاء

سياسة إعادة المحاولة

ستتم إعادة محاولة استدعاء خطافات الويب لمدة تصل إلى 12 ساعة إذا استجابت نقطة نهاية http بأي شيء عدا النجاح (2XX). إذا لم يتم تلقي أي استجابة في غضون 30 ثانية ، فسيتم اعتبار المكالمة فاشلة وستتم إعادة محاولتها أيضًا. تم تعيين لكل خطاف ويب معرف للحدث. وتم تمرير معرف الحدث مع كل طلب في الرؤوس كـ X-Hook-Event-ID. سيظل معرف الحدث كما هو في حالة عمليات إعادة المحاولة.

التحقق من توقيع خطاف الويب

يتم توقيع كل حدث لخطاف الويب عبر رمز مصادقة الرسالة استناداً على التجزئة هاش (HMAC) باستخدام المفتاح السري لـ خطافات الويب. يتم استخدام خوارزمية HMAC-SHA1 لإنشاء توقيع حمولة الويب هوك. تم تمرير التوقيع مع كل طلب في الرؤوس كـ X-Tawk-توقيع

أمثلة:

نود.جي إس

const WEBHOOK_SECRET = 'webhook secret key';
const crypto = require('crypto');
function verifySignature (body, signature) {
    const digest = crypto
        .createHmac('sha1', WEBHOOK_SECRET)
        .update(body)
        .digest('hex');
    return signature === digest;
};
app.post('/webhooks', function (req, res, next) {
    if (!verifySignature(req.rawBody, req.headers['x-tawk-signature'])) {
        // verification failed
    }
    // verification success
});

بي أتش بي

const WEBHOOK_SECRET = 'webhook secret key';
function verifySignature ($body, $signature) {
    $digest = hash_hmac('sha1', $body, WEBHOOK_SECRET);
    return $signature === $digest ;
}
if (!verifySignature(file_get_contents('php://input'), $_SERVER['HTTP_X_TAWK_SIGNATURE'])) {
    // verification failed
}
// verification success

روبي

WEBHOOK_SECRET = 'webhook secret key';
post '/payload' do
    request.body.rewind
    body = request.body.read
    signature = request.env['HTTP_X_TAWK_SIGNATURE']
    unless verifySignature(body, signature))
        // verification failed
    end
    // verification success
end
def verifySignature(body, signature)
    digest = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), WEBHOOK_SECRET, body)
    return digest == signature
end

حمولة حدث خطاف الويب

حدث بدء الدردشة

يتم إنشاؤه عندما يرسل الزائر أو الوكيل الرسالة الأولى في الدردشة. ولا تولد الهمسات ونظام الإشعارات كالمشغلات هذا الحدث.

حمولة حدث بدء الدردشة

الخاصية النوع الوصف
الحدث السلسلة اسم الحدث "الدردشة: إبدأ`
معرف الدردشة السلسلة معرف الدردشة
الوقت السلسلة وقت تاريخ إنشاء الحدث بتنسيق JSON
رسالة الموضوع موضوع الرسالة (أنظر في الأسفل)
زائر الموضوع موضوع الزائر (أنظر في الأسفل)
خاصية الموضوع موضوع الخاصية (أنظر في الأسفل)

موضوع الرسالة

الخاصية النوع الوصف
النص السلسلة التمثيل النصي للرسالة
النوع السلسلة نوع الرسالة ، تعداد القيمة msg, file, webrtc-call
المرسل الموضوع موضوع معلومات المرسل (أنظر في الأسفل)

موضوع معلومات المرسل

>
الخاصية النوع الوصف
النوع السلسلة , نوع المرسل، قيمة التعداد للوكيل، للزائر ، للنظام

موضوع الزائر

الخاصية النوع الوصف
الاسم السلسلة إسم الزائر
البريد الإلكتروني السلسلة البريد الإلكتروني للزائر (إختياري)
المدينة السلسلة مدينة الزائر
المدينة السلسلة ISO 3166 بلد الزائر بتنسيق

موضوع الخاصية

الخاصية Type الوصف
معرف السلسلة معرف الخاصية
الاسم السلسلة اسم الخاصية

مثل
{
    event: 'chat:start',
    chatId: '70fe3290-99ad-11e9-a30a-51567162179f',
    time: '2019-06-28T14:03:04.646Z',
    message : {
        text : 'Sample message',
        type : 'msg',
        sender : {
            type : 'visitor'
        }
    },
    visitor: {
        name: 'V1561719148780935',
        email : 'hello@test.com',
        city: 'jelgava',
        country: 'LV'
    },
    property: {
        id: '58ca8453b8a7e060cd3b1ecb',
        name: 'Bobs Burgers'
    }
}

الدردشة و الحدث

يولد عند إنهاء الدردشة

حمولة حدث نهاية المحادثة

الخاصية النوع الوصف
الحدث السلسلة اسم الحدث الدردشة : إنهاء
معرف الدردشة السلسلة معرف الدردشة
الوقت السلسلة وقت تاريخ إنشاء الحدث بتنسيق JSON
الزائر الموضوع موضوع الزائر (أنظر في الأسفل)
الخاصية الموضوع موضوع الخاصية (أنظر في الأسفل)

موضوع الزائر

الخاصية النوع الوصف
الاسم السلسلة اسم الزائر
البريد الإلكتروني السلسلة البريد الإلكتروني للزائر (إختياري)
المدينة السلسلة مدينة الزائر
البلد السلسلة ISO 3166 بلد الزائر بتنسيق

موضوع الخاصية

الخاصية النوع الوصف
المعرف السلسلة معرف الخاصية
الاسم السلسلة اسم الخاصية

مثل
{
    event: 'chat:end',
    chatId: '70fe3290-99ad-11e9-a30a-51567162179f',
    time: '2019-06-28T14:04:08.718Z',
    visitor: {
        name: 'V1561719148780935',
        email : 'hello@test.com',
        city: 'jelgava',
        country: 'LV'
    },
    property: {
        id: '58ca8453b8a7e060cd3b1ecb',
        name: 'Bobs Burgers'
    }
}

حدث إنشاء تذكرة

يولد عند إنشاء التذكرة

تذكرة إنشاء حمولة الحدث

الخاصية النوع الوصف
الحدث السلسلة اسم الحدث تذكرة:إنشاء
الوقت السلسلة وقت تاريخ إنشاء الحدث بتنسيق JSON
مقدم الطلب الموضوع موضوع مقدم الطلب(أنظر في الأسفل)
الخاصية الموضوع موضوع الخاصية(أنظر في الأسفل)
التذكرة الموضوع موضوع التذكر (أنظر في الأسفل)

موضوع مقدم طلب التذكرة

الخاصية النوع الوصف
الاسم السلسلة اسم الزائر
البريد الإلكتروني السلسلة البريد الإلكتروني للزائر (إختياري)

موضوع الخاصية

الخاصية النوع الوصف
المعرف السلسلة معرف الخاصية
الاسم السلسلة خاصية الاسم

موضوع التذكرة

الخاصية النوع الوصف
المعرف السلسلة معرف التذكرة
رقم المعرف البشري الرقم رقم المعرف البشري
الموضوع السلسلة موضوع التذكرة
الرسالة السلسلة محتوى رسالة التذكرة


مثل
{
    event: 'ticket:create',
    time: '2019-06-28T14:07:13.512Z',
    property: {
        id: '58ca8453b8a7e060cd3b1ecb',
        name: 'Bobs Burgers'
    },
    requester: {
        name: 'Martins',
        email: 'martins@tawk.to',
        type: 'agent'
    },
    ticket: {
        id: '02598050-99ae-11e9-8887-97564881b95b',
        humanId: 3,
        subject: 'Testing',
        message: 'Once more through the breach'
    }
}