جدول المحتويات
قناة مخصصة
محدث
بواسطة JQ Lee
![تدفق القناة المخصصة](https://files.helpdocs.io/9e3syfbzn8/articles/udkimroadf/1663742983306/custom-channel-flow.png)
كيف يعمل
تلقي رسالة
لتلقي رسالة عبر قناة مخصصة، يجب اتباع الخطوات التالية:
- عندما يحاول أحد جهات الاتصال إرسال رسالة، سيتصل موفر خدمات المراسلة بالخادم المخصص للتكامل مع حمولة الرسالة (يرجى مراجعة وثائق API لمزود خدمات المراسلة للرجوع إليه).
- سيتلقى خادم التكامل المخصص الخاص بك الرسالة وسيقوم بنشرها على الرد.io (في تنسيق الرد على الرسالة).
- الرد .io سوف يتلقى طلب المشاركة، حفظ الرسالة وعرضها على وحدة المراسلة.
إرسال رسالة
لإرسال رسالة عبر قناة مخصصة، يجب اتباع الخطوات التالية:
- عندما يحاول المستخدم/Workflow/بث إرسال رسالة، الرد .io سيتصل بخادم التكامل المخصص الخاص بك مع حمولة الرسالة (بتنسيق الردود).
- سيتلقى خادم التكامل المخصص الرسالة وسوف ينشرها على موفر خدمة المراسلة بالشكل الذي يتطلبه (يرجى مراجعة وثائق API لمزود خدمة المراسلة للمراجعة).
- سيتلقى موفر خدمة المراسلة Webhook وتأكيد ما إذا كانت الرسالة قد تم تسليمها بنجاح. تلميح، إذا لم يتم تسليم الرسالة بنجاح يمكنك محاولة إضافة آلية إعادة المحاولة في خادم التكامل المخصص الخاص بك.
الإعدادات
الخطوة 1: إنشاء قناة
- على منصة الاستجابة ، انتقل إلى الإعدادات > القنوات وانقر على زر أضف CHANNEL.
- حدد قناة مخصصة.
- أدخل رابط قاعدة API.
- حدد نوع المعرف للقناة وانقر التالي. هذا المعرف هو لغرض تعريف المستخدم وسيتم استخدامه للاتصال بخادم التكامل المخصص الخاص بك. هناك نوعان من الهويات المتاحة:
- رقم الهاتف: استخدم هذا إذا كان موفر خدمة المراسلة يتعرف على جهات الاتصال استنادًا إلى رقم هاتفهم.
- تنسيق العينة:
+60177872890
- تنسيق العينة:
- معرف مخصص: استخدم هذا إذا كان موفر خدمة المراسلة يتعرف على جهات الاتصال استناداً إلى معرف تم إنشاؤه خصيصاً.
- الحد الأقصى لطول الحرف هو 50.
A-Z
,a-z
,0-9
,_
,=
،+
،/
و@
مسموح به.
- رقم الهاتف: استخدم هذا إذا كان موفر خدمة المراسلة يتعرف على جهات الاتصال استنادًا إلى رقم هاتفهم.
- سيوفر مربع الحوار التالي معرف القناةو رمز APIو URL Webhook مثال.
- معرف القناة:
gfd8g7fd89dgfd
- API Token:
aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd
- رابط Webhook:
https://app.respond.io/custom/channel/webhook/
- معرف القناة:
الخطوة 2: تمرير الرسائل للاستجابة.io
عنوان URL Webhook يستخدم ل POST الرسائل، رسائل الرسائل و إيصالات الرسائل على الرد. o المنصة.
التعليمات البرمجية التالية سوف تتصل بالرد على الويب. o منصة وسوف تقوم بإنشاء جهة الاتصال (إذا لم تكن موجودة) وحفظ الرسالة ضد جهة الاتصال.
عينة للرسائل
curl -X POST \
https://app.respond.io/custom/channel/webhook/ \
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": [
{
"type": "message",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"message": {
"type": "text",
"text": "Hello World"
}
}
],
"contact": {
"firstName": "John",
"lastName": "Doe",
"profilePic": "<https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/07/08/14/pic.jpg>",
"countryCode": "MY",
"email": "john@respond.io",
"phone": "+60177872890",
"language": "en"
}
}'
عينة لتكرار الرسائل
curl -X POST \
https://app.respond.io/custom/channel/webhook/ \
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": [
{
"type": "message_echo",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"message": {
"type": "text",
"text": "Hello World"
}
}
],
"contact": {
"firstName": "John",
"lastName": "Doe",
"profilePic": "<https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/07/08/14/pic.jpg>",
"countryCode": "MY",
"email": "john@respond.io",
"phone": "+60177872890",
"language": "en"
}
}'
عينة لإيصالات المراسلة
curl -X POST \
https://app.respond.io/custom/channel/webhook/ \
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": [
{
"type": "message_status",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"status": {
"value": "sent|delivered|read|failed",
"message": "Error: Sending failed due to invalid token"
}
]
}'
الحقل | الوصف | المصادقة |
قناة | معرف القناة الفريدة | مطلوب. حقل فريد. يولدها المجيب.يو. |
contactId | معرف جهة اتصال فريد | مطلوب. فريد الرد. io معرّف جهة الاتصال. الحد الأقصى 50 حرفاً. |
الأحداث.نوع | نوع الحدث | مطلوب. النوع المتوفر: الرسالة، الرسالة_echo، و message_status. |
الأحداث.mld | معرف الرسالة | مطلوب. معرف الرسالة الفريد. الحد الأقصى 50 حرفاً. |
الأحداث.timestamp | UNIX Epoch الوقت (بالمللي ثانية) | مطلوب. وقت الحدث الذي أدى إلى إعادة المكالمة. |
الأحداث.message.type | نوع الرسالة | مطلوب. أنواع الرسائل المتاحة: النص والمرفق والموقع والرد السريع. ارجع قسم نوع الرسالة لعينات نوع الرسالة الأخرى. |
الأحداث.message.text | نص الرسالة | مطلوب. أقصى طول 7000 حرف. |
الأحداث.status.value | نص | مطلوب إذا كان event.type هو message_status. قيم الحالة المتاحة: تم إرسالها وتسليمها وقراءتها وفشلها. |
الأحداث.status.message | نص | مطلوب إذا فشلت الأحداث.status.value. |
اتصل بالاسم الأول | الاسم الأول | اختياري. الحد الأقصى 50 حرفاً. |
contact.lastName | اسم العائلة | اختياري. الحد الأقصى 50 حرفاً. |
contact.profilePic | رابط الصفحة الشخصية | اختياري. يجب ألا يتجاوز حجم الصورة الرمزية 100 كيلوبايت. 720x720 الموصى بها. |
جهات الاتصال | رمز اللغة | اختياري. راجع هنا لقائمة القيم. |
contact.countryCode | رمز البلد | اختياري. رمز البلد المكون من حرفين - رمز ISO ALPHA-2. |
contact.timezone | المنطقة الزمنية | اختياري. (الحد الأدنى: -24) (الحد الأقصى: 24). |
الاتصال بالبريد الإلكتروني | عنوان البريد الإلكتروني | اختياري. الحد الأقصى 50 حرفاً. |
contact.phone | رقم الهاتف | اختياري. الحد الأقصى 18 حرفاً. |
لغة الاتصال | اللغة | اختياري. ISO 639-1. |
الرد - النجاح (حالة HTTP → 200)
"موافق"
الخطوة 3: معالجة الرسائل الصادرة من المجيب.io
سوف يستدعي response.io نقطة النهاية التالية <API Base URL>/ الرسالة
/ رسالة
مسار في خادم الويب الخاص بك.إليك مثال cURL للرد .io الذي يستدعي نقطة النهاية.
curl -X POST \
<API Base URL>/message \
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"message": {
"type": "text",
"text": "Hello World"
}
}'
الرد - النجاح (حالة HTTP → 200)
{
"mId": "1640141607842"
}
يجب القيام بالمصادقة على نقطة النهاية قبل نقل الرسالة إلى مزود خدمة المراسلة. فيما يلي مثال معبر عن المنتصر.
const {validationResult} = مطلوبة ('bes-validator');
المصادقة على التوكين = (req, res, next) => {
const apiToken = <<API Token>>
const bearerToken = req. eaders.authorization;
if (!bearerToken)
ref. end(401)
const token = bearerToken.substring(7, bearerToken. محرك)؛
إذا (apiToken !== token) {
العودة القرار 10/21 end(401)
}
next();
};
وحدة نموذجية. xports = {
AuateToken
};
نوع الرسائل
عينة للنص
{
"نوع": "نص"،
"نص": "مرحبا بكم في الرد"،
}
الحقل | الوصف | المصادقة |
نوع | نوع الرسالة | مطلوب. نص |
نص | نص الرسالة | مطلوب. أقصى طول 7000 حرف. |
عينة لملف الوسائط
{
"نوع": "مرفق"،
"مرفق": {
"اكتب": " "| فيديو | صوت | ملف"،
"url"https: //abc/japan.png"،
"mimeType"image / png"،
" "":"company ""،
"وصف"أحدث شعار للشركة"
}
}
الحقل | الوصف | المصادقة |
نوع | نوع الرسالة | مطلوب. مرفق. |
مرفق.نوع | نوع المرفق | مطلوب. أنواع المرفقات المتاحة: الصورة، الفيديو، الصوت والملفات. |
المرفق.url | الرابط | مطلوب. الحد الأقصى 2000 حرف. تأكد من أنه رابط عام حتى يتمكن المستخدمون أو جهات الاتصال من رؤية المحتوى. |
المرفق.mimeType | نوع ميمي من المرفق | اختياري |
المرفق.fileName | اسم الملف | اختياري. يجب أن يتضمن اسم الملف امتدادا. الحد الأقصى 256 حرف (بما في ذلك امتداد الملف). إرسال ملف بدون ملحق أو مع ملحق خاطئ قد يتسبب في عدم تمكن جهة الاتصال أو المستخدم من فتح الملف. |
المرفق.وصف | وصف الملف | اختياري. الحد الأقصى 256 حرفاً. ينطبق فقط على المرفقات.نوع = الصورة. |
يجب أن يكون ترتيب المحتوى
في استجابة HTTP القيمة الافتراضية التي هي داخل
)عينة للموقع
{
"type": "location",
"latitude": 0.123456,
"longitude": -0.1234,
"address": "Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur"
}
الحقل | الوصف | المصادقة |
نوع | نوع الرسالة | مطلوب. الموقع. |
خط العرض | الإحداثيات | مطلوب. خط العرض (± 90 درجة مئوية) ضمن نطاقات صالحة. |
longtitude | الإحداثيات | مطلوب. الطول (± 180) ضمن نطاقات صالحة. |
العنوان | عنوان الموقع | اختياري. الحد الأقصى 256 حرفاً. |
عينة للرد السريع
{
"نوع": "السريع_الرد"،
"العنوان": "حدد لغتك المفضلة"،
"الردود": [
"مالاي"،
"الإنجليزية"
]
}
الحقل | الوصف | المصادقة |
نوع | نوع الرسالة | مطلوب. رد_سريع. |
العنوان | عنوان الرد السريع | مطلوب. الحد الأقصى 256 حرفاً. |
الردود | نص الرد | مطلوب. الحد الأقصى 10 ردود بحد أقصى 256 حرف لكل رد. |
رموز الخطأ
Error (HTTP Status → 4xx)
{
"خطأ": {
"رسالة": "رسالة الخطأ"
}
}
قدرات البث
من الممكن إرسال رسائل البث عبر قناة مخصصة متصلة بالرد على الاستبيان، ولكن بعض الشروط قد تؤدي إلى فشل إرسال الرسائل.
مع القنوات المخصصة، لا يمكن اكتشاف ما إذا كانت نافذة الرسائل مفتوحة أو مغلقة. ومن غير الممكن أيضا إرسال رسائل موسومة أو نموذجية.