توثيق API بوت ووتزل - المرجع ورموز الأخطاء

بوتابي (BotAPI)

واجهة برمجة التطبيقات (API) للروبوت مبنية على REST. يمكنك استدعاء واجهات البرمجة الخاصة بنا من خلال طلب HTTP قياسي مع مفتاح API الخاص بك الذي يتم وضعه في معلمة الاستعلام. بعد ذلك، ستُرجع WOZTELL استجابة مشفرة بصيغة JSON، تحتوي على البيانات المقابلة التي يمكن أن تحدد ما إذا كانت العمليات المتعلقة قد اكتملت.

قبل البدء، يمكنك أولاً تنزيل مجموعة Postman لـ واجهة برمجة التطبيقات للروبوت و البيئة بتنسيق JSON.

إذا كان متصفحك لا يمكنه تنزيل ملفات JSON بعد النقر على الرابط...
يرجى النقر بزر الماوس الأيمن و"فحص" لفتح أدوات المطور. اختر "المصدر" ثم انقر بزر الماوس الأيمن لتنزيل الملف المصدر باستخدام "حفظ باسم..."

المصادقة

accessToken

يجب وضع الرمز المميز للوصول كمعلمة استعلام accessToken في الطلب. يمكن إنشاء الرمز المميز للوصول باتباع هذه الدليل.

قد يكون لكل API نطاقات مختلفة، ولكن اختيار أي نطاق واحد يكفي لاستدعاء الـAPI.

نوع خطة الأمان اسم معلمة الاستعلام
API Key accessToken
نصيحة

بدلاً من ذلك، يمكن وضع Access Token في رأس التفويض كـ Bearer Token.



إرسال الردود

لإرسال ردود بالنيابة عن روبوت الدردشة الخاص بك إلى عضو محدد في WOZTELL.

إنشاء قالب في JSON

WOZTELL يسمح لك بإنشاء وإدارة قالب الرسائل على المنصة. عند إرسال الردود باستخدام Bot API ، هناك طريقة ملائمة للحصول على محتوى القالب بصيغة JSON.

  1. ضمن "الموارد"، اختر "الردود".
  1. اختر "+ رد جديد".
  1. افتح التبويب. اختر "إضافة منصة" ثم اختر "WhatsApp Cloud". سيتيح لك ذلك تطبيق أنواع الرسائل الخاصة بـ WhatsApp Cloud.
  1. اختر "قالب الرسالة" من أنواع الرسائل.
  1. اختر "التكامل" ذات الصلة ثم اضغط على "تحديث قالب الرسالة".
  1. اختر "قالب الرسالة" الذي ترغب في استخدامه. ثم اختر "سياسة اللغة" و"اللغة" ذات الصلة.
  1. املأ المكونات المطلوبة في القالب، مثل الصور والمعلمات. اضغط على "تأكيد" للخروج من هذه النافذة.
  1. في الاستجابة، قم بالتبديل إلى "متقدم" للحصول على محتوى القالب بصيغة JSON.

طلب

التفويضات: accessToken(bot:sendResponsesbot:admin)

معلمات الاستعلام:

معلمة الاستعلام مطلوب النوع الوصف
accessToken نعم apiKey يجب وضع الرمز المميز للوصول كمعلمة استعلام باسم accessToken في الطلب. يمكن توليد الرمز المميز للوصول باتباع هذا الدليل. قد تحتوي كل API على نطاقات مختلفة، يكفي اختيار نطاق واحد فقط لاستدعاء الـ API.

نموذج جسم الطلب: application/json

الحقل مطلوب النوع الوصف
channelId نعم سلسلة معرف القناة في WOZTELL
memberId لا سلسلة يمكن استخدام memberId أو recipientId
معرف العضو في WOZTELL
recipientId لا سلسلة يمكن استخدام memberId أو recipientId
معرف المستلم في التكامل. على سبيل المثال، PSID على Facebook، رقم الهاتف على WhatsApp، إلخ (لا يمكن ضمانه، يرجى استشارة منشئ التكامل إذا لزم الأمر)
response نعم مصفوفة البيانات التي ترغب في إرسالها كاستجابة. يمكنك بناء كائن الاستجابة عن طريق الإشارة إلى الوثائق الخاصة بالتكامل أو النسخ من منشئ الروبوت.




طلب عينة:

  • واتساب
  • فيسبوك
{
"channelId": "5fe729b3094223123123",
"recipientId": "85291239123",
"response": [
{
"type": "TEMPLATE",
"elementName": "testing",
"languageCode": "zh_CN",
"components": [
{
"type": "header",
"parameters": [
{
"type": "video",
"video": {
"id": "caf8bc1a-fbc0-4dc3-9d08-434sdf6df"
}
}
]
},
{
"type": "button",
"sub_type": "quick_reply",
"index": "0",
"parameters": [
{
"type": "payload",
"payload": "123"
}
]
}
]
}
]
}
نسخ


الاستجابة

رمز الحالة الوصف
200 سيعيد هذا الطلب رمز HTTPS 200 إذا بدأ الروبوت في التنفيذ. في جسم الاستجابة، سيتم إرجاع سلسلة JSON تحتوي على علامة "ok" بالقيمة 1 التي تشير إلى نجاح التنفيذ.

هيكل استجابة الجسم: application/json

الكائن النوع الوصف
ok Int القيمة: 1, حالة تشير إلى ما إذا كان هذا الطلب قد تم بنجاح أم لا
member String معرف العضو في WOZTELL
sendResult كائن كائن نتيجة الإرسال
sendResult.ok Int نجح الخادم في استلام الاستجابة
sendResult.member String معرف العضو في WOZTELL
sendResult.result [كائن] مصفوفة من نتائج الإرسال من خادم التكامل، يجب أن تحتوي على ok ، messageEvent ، error (اختياري) لعرض نتيجة كل استجابة
كائن مصفوفة من نتائج الإرسال من خادم التكامل، يجب أن تحتوي على ok ، messageEvent ، error (اختياري) لعرض نتيجة كل استجابة


رمز الحالة الوصف
500 سيعيد هذا الطلب رمز HTTPS 500 إذا تم العثور على خطأ قبل تنفيذ الروبوت.

استجابة مخطط الهيكل: application/json

كائن النوع الوصف
ok عدد صحيح دائمًا 0، تشير إلى أن الروبوت وجد خطأ قبل إرسال الاستجابة إلى خادم التكامل
err_code سلسلة رمز الخطأ في WOZTELL
خطأ سلسلة رسالة الخطأ


نموذج استجابة:

  • رمز الحالة: ٢٠٠
  • نوع المحتوى: application/json
نجاح/فشل
{
"ok": 1,
"member": "5ece50f3bf385b25c4e08db5",
"sendResult": {
"ok": 1,
"member": "5ece50f3bf385b25c4e08db5",
"result": [
{
"result": {
"type": "IMAGE",
"timestamp": 1611900841740,
"messageId": "gBGGhSZphigfAglySd38a9T4jAE"
},
"chatId": "5ece50f3bfa915g5c4e08db5"
},
{
"result": {
"IMAGE",
"timestamp": 1611900841740,
"messageId": "gBGGhSZafi5th8lySd38a9T4jAE"
},
"chatId": "5ece50f3bfa915g5c4e08db6"
}
]
}
}
نسخ
  • Status Code: 500
  • Content typeapplication/json
{
"ok": 0,
"err": "User is not authorized."
}
نسخ


إعادة توجيه العضو إلى عقدة

إعادة توجيه عضو إلى عقدة محددة في الشجرة وتنفيذ جميع مكوناتها أو أجزاء منها. يُفيد هذا في إجراء عمليات معقدة على عضو والحفاظ على منطق الروبوت في الشجرة بدلاً من الترميز الثابت في واجهة برمجة التطبيقات.

إذا لم يُقدَّم مُعرِّف العضو، فسيبحث النظام عن عضو يحمل مُعرِّف المستلم المُقدَّم.

كائن ميتا

لاستخدام كائن ميتا المُمرَّر من واجهة برمجة التطبيقات في استجابة التحويل أو إجراءات العقدة المستهدفة، استخدم الكود التالي للوصول إلى ميتا الخاص بك.
this.agendaMeta
نسخ

Example:

To access in transform response or actions
return new Promise((resolve, reject) => {
// ...
const name = this.agendaMeta.name // "Sanuker"
const orderId = this.agendaMeta.orderId // "5ecf6be76fcfda6b139d802c"
// ...
})
نسخ

الطلب

POST https://bot.api.woztell.com/redirectMemberToNode

التفويضات: accessToken(bot:redirectMemberToNodebot:adminapi:admin)

معاملات الاستعلام:

معامل الاستعلام مطلوب النوع الوصف
accessToken نعم apiKey يجب إدراج رمز الوصول كمعامل استعلام باسم accessToken في الطلب. يمكن توليد رمز الوصول باتباع هذه الدليل. قد تحتوي كل واجهة برمجة تطبيقات على نطاق مختلف، يكفي اختيار أي نطاق واحد لاستدعاء واجهة برمجة التطبيقات

مخطط جسم الطلب: application/json

الحقل مطلوب النوع الوصف
channelId نعم سلسلة نصية معرف القناة في WOZTELL
memberId لا سلسلة نصية إما memberId أو recipientId
معرف العضو في WOZTELL
recipientId لا سلسلة نصية إما memberId أو recipientId
معرف المستلم في التكامل. مثل PSID على فيسبوك، رقم الهاتف على WhatsApp، إلخ (غير مضمون، يرجى استشارة منشئ التكامل إذا لزم الأمر)
redirect نعم كائن العقدة المستهدفة التي ترغب في التوجيه إليها.
redirect.tree نعم سلسلة نصية الشجرة المستهدفة التي ترغب في التوجيه إليها.
redirect.nodeCompositeId نعم سلسلة نصية العقدة المستهدفة التي ترغب في التوجيه إليها.
redirect.runPreAction لا قيمة منطقية توجيه تنفيذ الإجراء المسبق؛ يمكن تعيينه إلى true أو false
redirect.sendResponse لا قيمة منطقية توجيه إرسال الاستجابة؛ يمكن تعيينه إلى true أو false
redirect.runPostAction لا قيمة منطقية توجيه تنفيذ الإجراء بعد التنفيذ؛ يمكن تعيينه إلى true أو false
meta لا كائن اختياري
كائن meta المقدم إلى العقدة.
يمكن الوصول إلى كائن meta في العقدة المستهدفة عبر this.agendaMeta.


طلب عينة

نوع المحتوى: application/json

{
"channelId": "5ece50e72efaabd58ef55027",
"memberId": "5ece50f3bf385b25c4e08db5",
"recipientId": null,
"redirect": {
"tree": "5ecf6cfba3b6643c33a64079",
"nodeCompositeId": "j4Bivxm0GWhnNV1m",
"runPreAction": true,
"sendResponse": true,
"runPostAction": true
},
"meta": {
"name": "Sanuker",
"orderId": "5ecf6be76fcfda6b139d802c"
}
}
نسخ

الاستجابة

رمز الحالة الوصف
200 سيتم إرجاع رمز HTTPS 200 إذا بدأ الروبوت في التنفيذ.

مخطط جسم الاستجابة: application/json

الكائن النوع الوصف
ok عدد صحيح دائماً 1، تشير إلى أن الروبوت نفذ أمر إرسال الاستجابة بنجاح
member نص معرف العضو في WOZTELL
sendResult كائن نتيجة الإرسال
sendResult.ok عدد صحيح نجح خادم التكامل في استلام الاستجابة
sendResult.member نص معرف العضو في WOZTELL
sendResult.result [كائن] مصفوفة من نتائج الإرسال من خادم التكامل، يجب أن تحتوي على okmessageEventerror (اختياري) الحقول لعرض نتيجة كل استجابة


رمز الحالة الوصف
500 سترجع هذه الطلبات رمز HTTPS 500 إذا واجهت خطأ قبل تنفيذ الروبوت.
الكائن النوع الوصف
ok عدد صحيح دائماً 0، تشير إلى أن الروبوت واجه خطأ قبل إرسال الاستجابة إلى خادم التكامل
err_code عدد صحيح رمز الخطأ في WOZTELL
error نص رسالة الخطأ


نموذج إجابة

رمز الحالة: ٢٠٠
المحتوى: application/json
{
"ok": 1,
"member": "5ece50f3bf385b25c4e08db5",
"sendResult": {
"ok": 1,
"member": "5ece50f3bf385b25c4e08db5",
"result": [
{
"ok": 1,
"messageEvent": {
"from": 85291239123,
"to": 85232193219,
"data": {
"url": "https://miro.medium.com/max/1200/1*mk1-6aYaf_Bes1E3Imhc0A.jpeg"
},
"type": "IMAGE",
"timestamp": 1611900841740,
"messageId": "gBGGhSZafi5th8lySd38a9T4jAE"
}
}
]
}
}
نسخ


استجابة عينة

  • رمز الحالة: 500
  • المحتوىapplication/json
{
"ok": 0,
"err_code": 108,
"err": "معرف القناة مطلوب."
}
نسخ


رموز الأخطاء

سيقوم WOZTELL بإرجاع رموز الأخطاء المقابلة إلى الجهة الطالبة عندما يحدث خطأ.

الرمز الوصف
100 رقم الهاتف المقدم غير صالح. إما أن الرقم غير موجود أو ليس له حساب WhatsApp مرتبط.
104 رقم PSID في Facebook غير صالح أو أن رمز الوصول في القناة المحددة غير صالح.
108 الوسائط مفقودة
112 لا يمكن العثور على القناة مع معرف القناة المقابل
113 خطأ في خادم WhatsApp