التكامل مع واجهات برمجة التطبيقات التابعة لجهات خارجية
يمكنك إنشاء روبوتات تتفاعل مع خدمات أخرى عبر واجهات برمجة التطبيقات (APIs). على سبيل المثال، يمكن للروبوتات إرسال طلبات للتحقق من التوافر لتاريخ محدد أو للعثور على منتج في متجر عبر الإنترنت.
كيفية التفاعل مع واجهات برمجة التطبيقات التابعة لجهات خارجية باستخدام Dadata كمثال
لنأخذ واجهة برمجة تطبيقات لاقتراح العناوين كمثال: https://dadata.ru/api/suggest/address/ سيكون الرابط مختلفًا
اقرأ وثائق واجهات برمجة التطبيقات التابعة لجهات خارجية بعناية.
يرجى الانتباه! تتطلب واجهات برمجة التطبيقات التابعة لجهات خارجية عناوين IP التي ستُرسل منها الطلبات: 158.160.49.208 – الموقع الإلكتروني.
في حقل "Request URL"، أدخل https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address.
في حقل "Request header" ، أدخل الترويسة بصيغة JSON: {"Content-Type": "application/json", "Accept": "application/json", "Authorization": "Token " + token}.
في حقل "JSON parameters" ، أدخل الطلب نفسه: {"query": "#{CurrencyType}"}.
للحصول على نتيجة الطلب، املأ "Saved values" .
يظهر مثال على الطلب في الرسم التوضيحي أدناه.

كيفية حفظ القيم من المتغيرات
قد لا يكون الأمر واضحًا تمامًا من المرة الأولى — ستحتاج حقًا إلى تجربته بنفسك.
أولًا، أدخل #{custom_answer} في حقل "Answer". (المتغير #{custom_answer} يحتوي على الاستجابة المستلمة من الخادم المحدد في حقل "Response URL".)
شغّل كتلة الطلب لإرسال الطلب والحصول على الاستجابة. يجب تحليل الاستجابة المستلمة، وتحديد المتغيرات التي يجب استخراجها منها. لهذا الغرض، استخدم حقل "Saved Values".
لنمرّ على المثال الموضح أعلاه.
أفضل طريقة لفهم كيفية الوصول إلى البيانات في JSON هي من خلال مثال. ونتيجة لطلبنا، تبدو الاستجابة المستلمة في #{custom_answer} كما يلي:
{
"suggestions": [
{
"value": "US Dollar",
"unrestricted_value": "US Dollar",
"data": {
"code": "840",
"strcode": "USD",
"name": "US Dollar",
"country": "United States"
}
}
]
}
في حقل "Saved values"، أدخل VALUE -> VARIABLE:
suggestions|0|value->CurrencyType;
suggestions|0|data|code->CurrencyDigCode;
suggestions|0|data|strcode->CurrencyStrCode;
suggestions|0|data|country->CurrencyCountry
suggestions - مفتاح المصفوفة [{"value": "US Dollar", "unrestricted_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}]
suggestions|0 - مفتاح العنصر الأول في المصفوفة {"value": "US Dollar", "unrestricted_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}
suggestions|0|value - مفتاح القيمة "US Dollar"
أطول مفتاح في هذا JSON:
suggestions|0|data|strcode - مفتاح القيمة "USD"
تُفصل المفاتيح بواسطة شريط عمودي (|). إذا كان عنصر JSON مصفوفة، فستصل إلى عناصرها باستخدام الفهرس، بدءًا من 0، ويُكتب ذلك أيضًا باستخدام شريط عمودي.
تحتاج إلى تكرار كامل التداخل. وللتسهيل، يمكنك عرض JSON بصريًا باستخدام تطبيق JSON viewer.
يُفصل مستوى التداخل بواسطة شريط عمودي. أي أنك تحتاج إلى سرد جميع المفاتيح للوصول إلى القيمة، مع فصلها بشريط عمودي.
إذا كان JSON يحتوي على مصفوفة، فاستخدم فهرس العنصر بدلًا من المفتاح، بدءًا من الصفر.
افصل التعابير الخاصة بالحصول على متغيراتنا بفاصلة منقوطة ;.
يتكوّن كل تعبير من مسار البيانات في الاستجابة واسم المتغير المراد حفظه فيه، ويفصل بينهما ->.
يمثل استعلام البحث المسار داخل JSON إلى القيمة المطلوبة.
تطوير واجهات برمجة التطبيقات للروبوتات
يدعم الروبوت طلبات GET وPOST، وهما النوعان الرئيسيان المستخدمان في معظم واجهات برمجة التطبيقات العامة.
GET هو طلب يحدث عند النقر على رابط أو فتح عنوان URL في المتصفح. وتُمرَّر المعلمات في هذا الطلب داخل عنوان URL.
صيغة تمرير المعلمات: بعد عنوان URL ضع علامة استفهام ?، ثم افصل كل معلمة بعلامة &. تتكوّن كل معلمة من اسم يتبعه = ثم قيمتها.
مثال على عنوان URL يحتوي على معلمة:

هنا، يتم تمرير معلمة واحدة q بالقيمة "good music". وتمثل %20 مسافة.
عند العمل مع المنشئ، يمكنك ببساطة استخدام مسافة — وسيستبدلها الروبوت تلقائيًا.
POST هو طلب يُرسل غالبًا عند إرسال نموذج على موقع ويب. تُرسل المعلمات في جسم الطلب. ورغم أنه يمكن أيضًا إرسالها في عنوان URL كما في طلبات GET، فإن هذا غير شائع. يمكن أن تكون المعلمات في الجسم بصيغة JSON أو على شكل أزواج مفتاح-قيمة. عادةً ما ترسل النماذج أزواج مفتاح-قيمة، بينما تستخدم واجهات برمجة التطبيقات غالبًا JSON.
رأس الطلب - يمكنك إضافة ترويسة إلى كل طلب. وغالبًا ما تحدد تنسيق البيانات ومفاتيح الوصول. عادةً ما يُترك هذا الحقل فارغًا، ولكن في حالات نادرة تحتاج إلى تضمين رمز API أو نوع الطلب، مثل "Content-Type": "application/json".
JSON (JavaScript Object Notation، وتُلفظ عادةً /ˈdʒeɪsən/ JAY-sən) هو تنسيق تبادل بيانات نصي قائم على JavaScript. وكثير من التنسيقات النصية الأخرى، فإن JSON سهل القراءة للبشر. وللعمل مع واجهات برمجة التطبيقات في الروبوت، تحتاج إلى فهم هذا التنسيق، لأنه أساس جميع التفاعلات.
قبل المتابعة، اقرأ المقالات التالية:
https://www.json.org/json-ru.html https://developer.mozilla.org/ru/docs/Learn/JavaScript/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B/JSON
كما يمكنك أيضًا تجربة إنشاء ملف JSON خاص بك على هذا الموقع:
تدريب
يمكن تنفيذ الطلبات بواسطة الكتل والشروط. صُممت الطلبات الشرطية للتحقق مما إذا كان بإمكان الحوار متابعة فرع معين على الموقع. في هذه الحالة، يُرسل الطلب في كل مرة يتم فيها تقييم شرط الفرع. أما الطلبات داخل الكتل، فتُنفَّذ فقط عندما يدخل الحوار تلك الحالة.
قبل إنشاء طلب، تحتاج إلى اختيار نوعه:

يختلف POST-data وPOST-JSON في كيفية إرسال المعلمات، كما ذُكر سابقًا (إما بصيغة JSON أو على شكل أزواج مفتاح-قيمة). إذا اخترت JSON، فلا يمكن إرسال المعلمات إلا في جسم الطلب. وسيظهر حقل إضافي لمعلمات JSON الخاصة بـ POST.
مهم! يجب كتابة المعلمات بصيغة JSON فقط، لأن الروبوت يعمل معها حصريًا. لقد تدربت بالفعل على كتابة JSON.
يمكن تحليل الاستجابة من الخادم وحفظها في متغيرات.
لا يمكنك تحليل استجابة إلا إذا كانت بصيغة JSON.
تُسجَّل المتغيرات المحفوظة في آخر نموذج غير مكتمل. إذا تم إرسال النموذج عبر كتلة حمراء، تُهمل المتغيرات. لذلك، إذا كنت بحاجة إلى حفظ هذه البيانات، فمرّر المتغيرات إلى نظام CRM عبر كتلة صفراء.
يمكنك أيضًا رؤية ما سجّله الروبوت في المتغيرات ضمن قسم "Leads".

تمرير المتغيرات ليس كنص
افتراضيًا، يجب أن تكون قيم المتغيرات نصوصًا بصيغة "#{}"، ولكن في هذه الحالة يُرسل المتغير كنص. لتمرير متغير كرقم، تحتاج إلى تعطيل التحقق من تنسيق المعلمات في إعدادات المشروع:

بعد ذلك يمكنك ببساطة استخدام اسم المتغير، على سبيل المثال: {"key": #{variable_name}}، حيث variable_name هو المتغير نفسه — من دون علامات اقتباس حوله.
يُنصح بإعادة تفعيل التحقق من التنسيق بعد ضبط المعلمات.
آخر تحديث