إنشاء قناة
قم بإعداد صندوق بريد لقناة API بسهولة في بيفاتيل، مما يتيح لك إرسال واستقبال الرسائل باستخدام واجهات برمجة التطبيقات الخاصة ببيفاتيل بخطوات إعداد بسيطة.
كيف تنشئ صندوق بريد لقناة API؟
يتضمن إعداد قناة API الخطوات التالية:
- إنشاء صندوق بريد لقناة API.
- إرسال الرسائل باستخدام واجهات برمجة التطبيقات الخاصة ببيفاتيل.
- استلام الإشعارات (Webhooks) للرسائل الجديدة من بيفاتيل.
توضح هذه الوثيقة كيفية إنشاء وتكوين صندوق بريد لقناة API في إعدادات بيفاتيل.
الخطوة 1: انتقل إلى الإعدادات > القنوات واضغط على "إضافة قناة".
الخطوة 2: اختر API من قائمة القنوات.

الخطوة 3: قم بتحديد اسم للقناة وأدخل عنوان URL الخاص بـ Callback (يتم تعريف الأحداث والبيانات المرتبطة بها في المقالات اللاحقة).

الخطوة 4: قم بإضافة الوكلاء إلى القناة.
الخطوة 5: تهانينا!! تم إعداد صندوق البريد بنجاح.
الآن تم إعداد القناة بنجاح، دعنا نجرب إرسال رسالة باستخدام واجهات برمجة التطبيقات الخاصة ببيفاتيل.
عند محاولة المستخدم تعديل إعدادات صندوق البريد:
في قسم المتعاونين في إعدادات صندوق البريد:
عند إضافة وكيل في حقل الوكيل (Agent Field):
- أي مستخدم تم تعيينه كوكيل يمكنه رؤية والوصول إلى هذا الصندوق من خلال وحدة المحادثات.
- يمكنهم إدارة المحادثات داخل هذا الصندوق.
عند إضافة فريق في حقل الفريق (Team Field):
- المستخدمون الذين يحاولون تعيين محادثات لفريق معين من خلال وحدة المحادثات، سيتمكنون فقط من رؤية الفرق المضافة إلى صندوق البريد المرتبط.
- هذا يقيد خيارات تعيين المحادثات للفرق المرتبطة بصندوق البريد المحدد، مما يضمن توزيع المحادثات بشكل مناسب بين الفرق المعنية.
إرسال الرسائل
تعرف على كيفية إرسال الرسائل في قناة API داخل منصة Bevatel من خلال إنشاء جهات اتصال، محادثات، ورسائل باستخدام رموز الوصول إلى API والحمولات المنظمة لتحقيق تواصل فعال.
إرسال الرسائل إلى قناة API
لإرسال الرسائل إلى قناة API، يجب أن تكون لديك فهم أساسي للنماذج والمصطلحات المستخدمة في Bevatel. دعنا نفهم هذه المفاهيم أولاً:
- القناة (Channel): يمكنك إنشاء مصادر متعددة للمحادثات التي تنتمي لنفس نوع القناة. على سبيل المثال: يمكن أن يكون لديك أكثر من صفحة فيسبوك متصلة بحساب Bevatel. كل صفحة تعتبر قناة داخل Bevatel.
- المحادثة (Conversation): المحادثة هي مجموعة من الرسائل.
- جهة الاتصال (Contact): كل محادثة لها شخص حقيقي مرتبط بها، هذا الشخص يسمى جهة اتصال.
- صناديق جهات الاتصال (Contact Inboxes): هذا هو الجلسة لكل جهة اتصال على صندوق الوارد. يمكن لجهة الاتصال أن يكون لها عدة جلسات وعدة محادثات داخل نفس صندوق الوارد.
كيفية إرسال رسالة في قناة API؟
لإرسال رسالة في قناة API، يجب إنشاء جهة اتصال أولاً، ثم إنشاء محادثة، ثم إرسال رسالة.
تتطلب واجهات API وجود api_access_token في رأس الطلب. يمكنك الحصول على هذا الرمز من خلال زيارة إعدادات الملف الشخصي الخاص بك > رمز الوصول (Access Token).
1. إنشاء جهة اتصال
قم بتمرير معرف صندوق الوارد الخاص بقناة API مع المعلمات الأخرى المحددة. سيتم إنشاء جلسة تلقائيًا. استجابة العينة قد تبدو كالتالي:"
- {
- "email": "string",
- "name": "string",
- "phone_number": "string",
- "thumbnail": "string",
- "additional_attributes": {},
- "contact_inboxes": [
- {
- "source_id": "string",
- "inbox": {
- "id": 0,
- "name": "string",
- "website_url": "string",
- "channel_type": "string",
- "avatar_url": "string",
- "widget_color": "string",
- "website_token": "string",
- "enable_auto_assignment": true,
- "web_widget_script": "string",
- "welcome_title": "string",
- "welcome_tagline": "string",
- "greeting_enabled": true,
- "greeting_message": "string"
- }
- }
- ],
- "id": 0,
- "availability_status": "string" }
كما هو موضح في البيانات المستلمة (Payload)، ستتمكن من رؤية contact_inboxes، وكل contact_inbox سيكون لديه source_id. يمكن اعتبار source_id بمثابة معرف الجلسة. ستستخدم هذا source_id لإنشاء محادثة جديدة كما هو موضح أدناه.
2. إنشاء محادثة
3. إنشاء رسالة جديدة
هناك نوعان من الرسائل يمكن إنشاؤها:
الرسائل الواردة (Incoming):
الرسائل التي يرسلها المستخدم النهائي يتم تصنيفها كرسائل واردة.
الرسائل الصادرة (Outgoing):
الرسائل التي يرسلها الوكيل (Agent) يتم تصنيفها كرسائل صادرة.
كيفية إنشاء رسالة؟
- عند استدعاء واجهة برمجة التطبيقات (API) بالمحتوى الصحيح، ستحصل على بيانات استجابة مشابهة للمثال أدناه.
- {
- "id": 0,
- "content": "This is a incoming message from API Channel",
- "inbox_id": 0,
- "conversation_id": 0,
- "message_type": 0,
- "content_type": null,
- "content_attributes": {},
- "created_at": 0,
- "private": false,
- "sender": {
- "id": 0,
- "name": "Pranav",
- "type": "contact"
- }
إذا تم تنفيذ كل شيء بنجاح، ستتمكن من رؤية المحادثة على لوحة التحكم (Dashboard).
استقبال الرسائل
استقبل الرسائل الجديدة بسهولة في قناة API الخاصة بك من خلال طلب POST يتم إرساله إلى رابط الاسترجاع (Callback URL) المحدد، مع تقديم معلومات مفصلة عن البيانات (Payload) لمعالجة الرسائل بشكل فعال.
استقبال الرسائل باستخدام رابط الاسترجاع (Callback URL)
عند إنشاء رسالة جديدة في قناة API، ستتلقى طلب POST على رابط الاسترجاع (Callback URL) الذي تم تحديده أثناء إنشاء قناة API.
سيكون شكل البيانات (Payload) كما يلي.
نوع الحدث: message_created
{
- "id": 0,
- "content": "This is a incoming message from API Channel",
- "created_at": "2020-08-30T15:43:04.000Z",
- "message_type": "incoming",
- "content_type": null,
- "content_attributes": {},
- "source_id": null,
- "sender": {
- "id": 0,
- "name": "contact-name",
- "avatar": "",
- "type": "contact"
- },
- "inbox": {
- "id": 0,
- "name": "API Channel"
- },
- "conversation": {
- "additional_attributes": null,
- "channel": "Channel::Api",
- "id": 0,
- "inbox_id": 0,
- "status": "open",
- "agent_last_seen_at": 0,
- "contact_last_seen_at": 0,
- "timestamp": 0
- },
- "account": {
- "id": 1,
- "name": "API testing"
- },
- "event": "message_created"
- }
واجهات برمجة التطبيقات للعملاء (Client APIs)
استفد من واجهات برمجة التطبيقات (APIs) الخاصة بمنصة Bevatel لإنشاء واجهات مخصصة للعملاء، بما في ذلك عناصر واجهة الدردشة، تكاملات تطبيقات الهواتف المحمولة، وامتدادات المنصة، مما يتيح إدارة فعالة لبيانات العملاء والتفاعل معهم.
إنشاء واجهات باستخدام Client APIs
ملاحظة: هذه الواجهات لا تزال في مرحلة alpha، وقد تحدث تغييرات في التنفيذ مستقبلاً.
استخدامات Client APIs
توفر واجهات برمجة التطبيقات (APIs) المتاحة لقناة API أدوات لبناء واجهات موجهة للعملاء على Bevatel.
تشمل الاستخدامات:
- استخدام واجهة دردشة مخصصة بدلاً من عنصر واجهة دردشة Bevatel الافتراضي.
- دمج واجهات محادثة داخل تطبيقات الهواتف المحمولة الخاصة بك.
- إضافة دعم Bevatel إلى منصات لا توفر لها Bevatel أدوات تطوير رسمية (SDK).
إنشاء كائنات العملاء (Customer Objects)
معرّف صندوق البريد (Inbox Identifier):
- يمكنك الحصول على inbox_identifier من:
قناة API -> الإعدادات -> التكوين (Configuration).
معرّف العميل (Customer Identifier):
- customer_identifier أو source_id يمكن الحصول عليه عند إنشاء العميل باستخدام واجهة Create API.
- يجب تخزين هذا المعرف في جانب العميل (client-side) لإجراء الطلبات المستقبلية نيابة عن العميل.
- يمكن تخزينه في cookies، local storage، إلخ.
واجهات API المتوفرة
بعض الوظائف التي يمكنك القيام بها باستخدام هذه الواجهات:
- إنشاء، عرض، وتحديث جهات الاتصال.
- إنشاء، عرض، وإدارة المحادثات.
- إنشاء، عرض، وتحديث الرسائل.
مصادقة HMAC
- تدعم Client APIs مصادقة HMAC.
- يمكن الحصول على رمز HMAC الخاص بالقناة عن طريق تشغيل الأمر التالي في Rails Console (إذا كنت تستخدم بيئة ريلز).
أهمية HMAC Authentication
- تضمن أمان الاتصالات بين العملاء وخادم Bevatel.
- يُوصى باستخدامه عند التعامل مع بيانات العملاء الحساسة أو إجراء عمليات حرجة.
- # replace api_inbox_id with your inbox id
- Inbox.find(api_inbox_id).channel.hmac_token
الاتصال بـ Bevatel WebSockets
للحصول على تحديثات في الوقت الفعلي من لوحة تحكم الوكلاء (Agent Dashboard)، يمكنك الاتصال بـ Bevatel WebSockets.
رابط الاتصال بـ WebSockets:
الاتصال يمكن إنشاؤه باستخدام عنوان URL التالي:
<your installation url>/cableمصادقة اتصال WebSocket
للبدء في استقبال الأحداث الموجهة نحو كائن العميل (Customer Object) الخاص بك، يجب عليك الاشتراك باستخدام pubsub_token.
ما هو pubsub_token؟
- pubsub_token هو رمز مصادقة يتم توفيره أثناء استدعاء واجهة برمجة التطبيقات (Customer-Created API Call).
- يُستخدم هذا الرمز لتحديد العميل والتحقق من صحة الاتصال عبر WebSocket.
مثال:
- const connection = new WebSocket('ws://localhost:3000/cable');
- connection.send(JSON.stringify({ command:"subscribe", identifier: "{\"channel\":\"RoomChannel\",\"pubsub_token\":\""+ customer_pubsub_token+"\"}" }));