تتيح لك خطافات الويب إرسال إشعارات في الوقت الفعلي للأحداث داخل 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'
}
}