تخطَّ إلى المحتوى

المصادقة

تزوّدك التطبيقات بـ Client ID وSecret Key تحتاجهما لإنشاء جلسة OAuth2 مصدّقة يمكنك استخدامها للتواصل مع واجهات برمجة التطبيقات الخاصة بـ Wink وTripPay.

فيما يلي خطوات إنشاء جلسة مصدّقة.

الخطوة 1. استرجع رمز وصول في بيئة الاختبار أو بيئة الإنتاج لدينا:

على الأرجح، ستستخدم مكتبة OAuth2 قوية للغتك البرمجية، والتي ستقوم بكل العمل الشاق نيابة عنك. أمثلتنا ستوضح الاستخدام الأساسي من سطر الأوامر باستخدام curl.

Terminal window
curl -X POST https://staging-iam.wink.travel/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=<YOUR_CLIENT_ID>" \
-d "client_secret=<YOUR_SECRET_KEY>"
Terminal window
curl -X POST https://iam.wink.travel/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=<YOUR_CLIENT_ID>" \
-d "client_secret=<YOUR_SECRET_KEY>"

سيُرجع هذا رمز وصول، إلى جانب بيانات استجابة OAuth2 أخرى:

{
"access_token": "abc123"
}

عند إجراء مكالمة إلى أي من نقاط النهاية لدينا، أدرج التالي في رأس الطلب:

  • Wink-Version = 2.0 الأحدث - راجع وثائق API الخاصة بنا للإصدارات الأخرى المتاحة.
  • Authorization = Bearer ${access_token} أدخل رمز الوصول الخاص بك.

الصلاحية هي إذن يحمله رمز الوصول الخاص بك. عند طلب رمز، تمرر قائمة من الصلاحيات مفصولة بمسافات في معامل scope، ولا يمكن للرمز الوصول إلا إلى المناطق التي تغطيها تلك الصلاحيات. مع منحة client_credentials تحدد الصلاحيات في طلب الرمز — راجع أمثلة curl أعلاه وشرح Postman.

تُسمى الصلاحيات بصيغة section.action، حيث تكون الإجراءات واحدة من:

  • read — عرض الموارد (طلبات GET الآمنة)
  • write — إنشاء وتحديث الموارد (POST / PUT / PATCH)
  • remove — حذف الموارد (DELETE)

يقوم Wink بتجميع الأذونات حسب المجال الوظيفي. اطلب فقط الصلاحيات التي يحتاجها تكاملك:

مجموعة الصلاحياتالصلاحياتما تفتحهالمخاطر
الحسابaccount.read account.write account.removeإدارة الكيانات، أعضاء الفريق، الإعدادات، التطبيقاتمنخفضة–متوسطة
المخزونinventory.read inventory.write inventory.removeالعقارات، أنواع الغرف، خطط الأسعار، الأسعار، الإضافات، التوفر، الأنشطة، المعالممنخفضة–متوسطة
الحجزbooking.read booking.write booking.removeالبحث، العرض، الإنشاء، الإلغاء، واسترداد الحجوزات؛ الدفع؛ سياسات الإلغاءمنخفضة–متوسطة
التسويقmarketing.read marketing.write marketing.removeالحملات، المزايا، قنوات المبيعات، WinkLinks، إدارة وسائل التواصل، الولاءمنخفضة–متوسطة
المحتوىcontent.read content.write content.removeأوصاف العقارات، التقييمات، الوسائط، الخرائط، مؤشر البيئةمنخفضة–متوسطة
التحليلاتanalytics.read analytics.write analytics.removeالتقارير والتحليلات — الإيرادات، لوحات المتصدرينمنخفضة–متوسطة
التكاملاتintegrations.read integrations.write integrations.removeمدراء القنوات، أنظمة الحجز الخارجية، Google Hotel، نقاط الإشعارات، مزامنة الحجزمنخفضة–متوسطة
الدفعpayment.read payment.write payment.removeمعالجة الدفع، Stripe، Revolut، المدفوعات، الاشتراكاتمتوسطة–عالية
المحاسبةaccounting.read accounting.write accounting.removeالمحاسبة، سجل السحب، التسويةمتوسطة–عالية
MCPmcp.read mcp.write mcp.removeيفتح نقل MCP (/mcp) لوكلاء الذكاء الاصطناعيمنخفضة–متوسطة

بعض الأمور التي يجب وضعها في الاعتبار:

  • اطلب الحد الأدنى. اطلب فقط الصلاحيات التي يستخدمها تكاملك فعليًا — الرمز الذي يُصدر بصلاحيات أوسع من اللازم يشكل نطاق تأثير أكبر إذا تم تسريبه.
  • الصلاحيات غير المعروفة تُرفض. طلب صلاحية لم يتم تسجيل تطبيقك لها، أو صلاحية غير موجودة، يفشل عند إصدار الرمز.
  • mcp.* مخصصة فقط لعملاء وكلاء الذكاء الاصطناعي. تحتاجها لفتح نقل MCP؛ ليست مطلوبة لمكالمات REST API العادية. راجع بروتوكول سياق النموذج.