Recommended resources
The freely available resources this lesson will direct you to.
أهلاً بك في الدرس السادس من رحلتنا نحو أتمتة متجرك.
في الدرس الماضي، قمنا بتجربتنا العملية الأولى مع Postman، حيث أرسلت طلبات GET لجلب البيانات وPOST لإنشاء بيانات جديدة. كانت كل تلك الطلبات موجهة لواجهة برمجة تطبيقات (API) عامة ومفتوحة لا تطلب أي تحقق من الهوية.
لكن في العالم الحقيقي، واجهات برمجة التطبيقات التي تتعامل مع بيانات حساسة — مثل بيانات متجرك ومنتجاتك وطلبات عملائك — تكون محمية. لا يمكن لأي شخص إرسال طلبات إليها. يجب على الـ API أن يتأكد أولاً من أنت (Who are you?) وماذا يُسمح لك أن تفعل (What are you allowed to do?).
درس اليوم مخصص بالكامل للإجابة على هذين السؤالين. هدفنا هو فهم مفهوم المصادقة (Authentication) وأنواعه (API Key, OAuth). هذا المفهوم هو البوابة التي يجب أن نعبرها للبدء في التعامل مع واجهات برمجة التطبيقات الحقيقية والمهمة، وعلى رأسها YouCan API.
1. المصادقة (Authentication) مقابل التفويض (Authorization)
قبل أن نتعمق في الأنواع، من الضروري أن نفهم الفرق بين مصطلحين أساسيين يتم الخلط بينهما كثيراً. فهم هذا الفرق يتماشى مع رغبتك في فهم الجانب التقني العميق للأمور.
Azure API Management - إدارة واجهة برمجة التطبيقات
للبدء، دعنا نوضح هذين المفهومين. هذا المرجع من Microsoft يشرح الفرق بينهما بوضوح ومباشرة باللغة العربية.
اقرأ قسم "المصادقة مقابل التخويل". ركز على تعريف كل مصطلح.
للتلخيص:
- المصادقة (Authentication): هي عملية التحقق من هويتك. الهدف هو إثبات أنك من تدعي أنك هو.
- مثال: عندما تدخل كلمة المرور لتسجيل الدخول إلى بريدك الإلكتروني، هذه مصادقة. أنت تثبت للخادم أنك صاحب الحساب.
- التفويض (Authorization): هي عملية تحديد صلاحياتك بعد إثبات هويتك. الهدف هو تحديد ما يمكنك الوصول إليه أو فعله.
- مثال: بعد تسجيل الدخول إلى متجر YouCan، يمكنك رؤية طلباتك (أنت مُفوّض لذلك)، لكن لا يمكنك رؤية طلبات متجر آخر (أنت غير مُفوّض لذلك).
ببساطة، المصادقة تفتح لك الباب، والتفويض يحدد الغرف التي يمكنك دخولها. في هذا الدرس، سنركز على طرق المصادقة الشائعة في عالم الـ API.
2. النوع الأول: مفتاح API (API Key)
هذه هي أبسط طرق المصادقة وأكثرها شيوعاً للمهام البسيطة.
API Authentication EXPLAINED! 🔐 OAuth vs JWT vs API Keys 🚀
لفهم مفهوم مفتاح API، شاهد هذا الجزء من الفيديو الذي يقدم شرحاً بسيطاً ومثالاً توضيحياً.
شاهد من الدقيقة 2:00 إلى 3:58. ركز على النقاط التالية: ما هو مفتاح API (تشبيه بطاقة الـ VIP). كيف يتم إرساله مع الطلب (في الـ Headers). متى يكون استخدامه مناسباً.
كيف يعمل مفتاح API؟
مفتاح الـ API هو ببساطة سلسلة طويلة من الأحرف والأرقام الفريدة التي تُمنح لك من قبل الخدمة (مثل YouCan). عند إرسال أي طلب إلى ה-API، تقوم بتضمين هذا المفتاح مع طلبك. يقوم الخادم بالتحقق من المفتاح، وإذا كان صحيحاً، فإنه ينفذ الطلب.
يمكنك التفكير فيه كمفتاح لغرفة فندق. طالما أنك تملك المفتاح الصحيح، يمكنك فتح الباب والدخول.

عادةً ما يتم إرسال المفتاح داخل ما يسمى بـ "ترويسات الطلب" (Request Headers). هذا جزء مخفي من الطلب لا يظهر في الـ URL، مما يجعله أكثر أماناً. في الدرس السابق، تعاملنا مع URL و Body. الـ Headers هو قسم آخر في Postman سنتعامل معه قريباً.
متى نستخدمه؟
- للتواصل بين خادم وخادم (Server-to-Server) حيث لا يوجد تدخل مباشر من المستخدم.
- للمشاريع الداخلية أو الأدوات الشخصية التي تبنيها بنفسك للوصول إلى بياناتك.
- لتتبع استخدام الـ API وتحليله.
3. النوع الثاني: OAuth 2.0
هذه هي الطريقة الأكثر تقدماً وأماناً، وهي المعيار الصناعي المعتمد لمعظم التطبيقات الحديثة، خاصة عندما تمنح تطبيقاً ثالثاً (مثل Make.com) الإذن بالوصول إلى بياناتك في تطبيق آخر (مثل YouCan).
هل سبق لك أن ضغطت على زر "تسجيل الدخول باستخدام جوجل" أو "Login with Facebook" على موقع ما؟ إذا فعلت، فقد استخدمت OAuth بالفعل!
الفكرة الأساسية لـ OAuth هي التفويض المفوّض (Delegated Authorization). أنت كمالك للحساب (Resource Owner)، تمنح تطبيقاً (Client) الإذن للوصول إلى بياناتك الموجودة على خادم (Resource Server)، دون أن تعطي هذا التطبيق كلمة مرورك أبداً.
OAuth 2 Explained In Simple Terms
هذا الفيديو من قناة ByteByteGo الرائعة يشرح آلية عمل OAuth 2.0 بطريقة مرئية ومبسطة للغاية باستخدام مثال عملي لطباعة الصور.
شاهد الفيديو كاملاً (حوالي 4 دقائق). ركز على فهم الأدوار الأربعة في العملية (مالك المورد، العميل، خادم المورد، خادم التفويض) والخطوات الأساسية لتدفق التفويض.
تدفق OAuth 2.0 المبسط:
بناءً على خلفيتك في الميكاترونكس واهتمامك بالأنظمة، يمكن تشبيه OAuth بعملية معقدة ومنظمة لتسليم مفتاح مؤقت ومقيد الصلاحيات:
- الطلب (Request): التطبيق الذي تريد استخدامه (مثلاً، Make.com) يطلب منك الإذن للوصول إلى بيانات متجرك على YouCan.
- إعادة التوجيه (Redirect): يتم توجيهك إلى صفحة تسجيل الدخول الخاصة بـ YouCan. ملاحظة هامة: أنت تدخل بياناتك على موقع YouCan الرسمي، وليس على موقع Make.com.
- الموافقة (Consent): بعد تسجيل الدخول، تعرض لك YouCan شاشة تسألك: "هل تسمح لتطبيق Make.com بالوصول إلى (قراءة الطلبات، تحديث المنتجات، ...إلخ)؟". أنت توافق.
- الرمز المؤقت (Authorization Code): تعيد YouCan توجيهك إلى Make.com ومعك "رمز تفويض" مؤقت.
- تبادل الرمز (Code Exchange): في الخلفية، يتواصل Make.com مباشرة مع خادم YouCan، ويقدم له رمز التفويض هذا، بالإضافة إلى هويته الخاصة (Client ID & Secret).
- رمز الوصول (Access Token): إذا كانت كل المعلومات صحيحة، يمنح خادم YouCan تطبيق Make.com "رمز وصول" (Access Token).
- الوصول للموارد (Accessing Resources): الآن، يستخدم Make.com رمز الوصول هذا في كل مرة يريد فيها سحب بيانات الطلبات الجديدة من متجرك. هذا الرمز عادة ما يكون قصير الأجل (ينتهي صلاحيته بعد فترة) ويمكن إلغاؤه في أي وقت.
قد تبدو العملية معقدة، وهذا مقصود. كل هذه الخطوات تضمن أن كلمة مرورك تظل سرية وآمنة، وأنك تتحكم بشكل كامل في الصلاحيات التي تمنحها.
المصادقة - Partner APIs - Schneider Electric
لربط هذه النظرية ببرنامج Postman الذي تعلمناه، هذا المرجع باللغة العربية يوضح كيف يمكنك استخدام Postman للحصول على رمز وصول (Access Token) باستخدام OAuth.
اقرأ قسم "كيف يعمل بروتوكول OAuth" وقسم "كيفية إنشاء رمز مميز باستخدام Postman". لا تقلق بشأن تطبيق الخطوات الآن، الهدف هو فقط ربط مفاهيم OAuth (Client ID, Secret, Token) بواجهة Postman.
4. مقارنة سريعة: متى تستخدم أيهما؟
الآن بعد أن فهمنا الطريقتين، كيف نختار بينهما؟

| الميزة | مفتاح API (API Key) | OAuth 2.0 |
|---|---|---|
| التعقيد | بسيط جداً. مجرد مفتاح ثابت. | أكثر تعقيداً. يتضمن تدفقاً من عدة خطوات. |
| الأمان | أقل أماناً. إذا سُرق المفتاح، يمكن الوصول لكل شيء. | أكثر أماناً. رموز الوصول مؤقتة ويمكن تحديد صلاحياتها. |
| حالة الاستخدام | الوصول من خادم لخادم، سكربتات شخصية. | السماح لتطبيقات طرف ثالث (Third-party) بالوصول للبيانات نيابة عن المستخدم. |
| مثال عملي | سكربت Python تكتبه بنفسك لجلب تقارير المبيعات اليومية من متجرك. | ربط متجرك YouCan بمنصة Make.com لإرسال رسائل WhatsApp تلقائياً. |
اختبر فهمك!
لنفترض أنك تريد بناء نظامين:
- النظام الأول: برنامج صغير يعمل على حاسوبك الشخصي كل صباح، يقوم بسحب عدد الطلبات الجديدة من متجرك على YouCan ويعرضها لك في تنبيه على الشاشة. لا أحد غيرك سيستخدم هذا البرنامج.
- النظام الثاني: خدمة جديدة تسمى "PrintMyOrders" تسمح لمستخدمي YouCan بالاشتراك فيها لطباعة ملصقات الشحن تلقائياً. يجب على الخدمة أن تتمكن من الوصول إلى طلبات كل مستجر يشترك فيها.
ما هي طريقة المصادقة الأنسب لكل نظام، ولماذا؟
أظهر الإجابة
-
النظام الأول (برنامجك الشخصي): مفتاح API (API Key) هو الأنسب. لأنه نظام داخلي خاص بك، لا يوجد مستخدمون آخرون. يمكنك ببساطة إنشاء مفتاح API من إعدادات متجرك واستخدامه مباشرة في برنامجك. إنه حل بسيط وفعال لهذا السيناريو.
-
النظام الثاني (خدمة PrintMyOrders): OAuth 2.0 هو الحل الصحيح والوحيد الآمن. لا يمكنك أن تطلب من أصحاب المتاجر أن يعطوك مفاتيح API الخاصة بهم (فهذا يعادل إعطاءك مفتاح متجرهم بالكامل). بدلاً من ذلك، يجب أن تستخدم OAuth. عندما يشترك صاحب متجر، ستقوم بتوجيهه إلى YouCan ليوافق على منح خدمتك صلاحية "قراءة الطلبات" فقط. بهذه الطريقة، لا تعرف كلمة المرور الخاصة به، ويمكنه إلغاء هذا الإذن في أي وقت، وصلاحياتك محدودة فقط بما تحتاجه.
خلاصة الدرس
لقد أضفنا اليوم قطعة أساسية وحيوية إلى مجموعة مهاراتك. فهم المصادقة هو ما يفصل بين اللعب في بيئة تجريبية والبدء في بناء أنظمة حقيقية وقوية.
أهم النقاط:
- المصادقة (Authentication) هي إثبات هويتك، بينما التفويض (Authorization) هو تحديد صلاحياتك.
- مفتاح API (API Key) هو طريقة بسيطة للمصادقة باستخدام مفتاح سري ثابت، مناسبة للسكربتات الشخصية والوصول المباشر.
- OAuth 2.0 هو معيار صناعي آمن يسمح للتطبيقات بالوصول إلى بيانات المستخدمين نيابة عنهم دون مشاركة كلمات المرور، وهو مثالي لربط الخدمات المختلفة (مثل YouCan مع Make).
الدرس القادم
الآن بعد أن فهمت نظرياً كيف تعمل المصادقة، حان الوقت لتطبيق ذلك عملياً على متجرك. في الدرس القادم، سندخل إلى لوحة تحكم YouCan، وسنرى كيف تطبق YouCan هذه المفاهيم، وسنقوم بـ تفعيل مفاتيح الوصول الخاصة بمتجرك. هذه المفاتيح هي التي سنستخدمها في Postman لبدء التفاعل الحقيقي مع بيانات منتجاتك وطلباتك. استعد للتطبيق العملي