المصادقة
تزوّدك التطبيقات بـ Client ID وSecret Key تحتاجهما لإنشاء جلسة OAuth2 مصدّقة يمكنك استخدامها للتواصل مع واجهات برمجة التطبيقات الخاصة بـ Wink وTripPay.
فيما يلي خطوات إنشاء جلسة مصدّقة.
الخطوة 1. استرجع رمز وصول في بيئة الاختبار أو بيئة الإنتاج لدينا:
على الأرجح، ستستخدم مكتبة OAuth2 قوية للغتك البرمجية، والتي ستقوم بكل العمل الشاق نيابة عنك.
أمثلتنا ستوضح الاستخدام الأساسي من سطر الأوامر باستخدام curl.
بيئة الاختبار
Section titled “بيئة الاختبار”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>"بيئة الإنتاج
Section titled “بيئة الإنتاج”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}أدخل رمز الوصول الخاص بك.
الصلاحيات (Scopes)
Section titled “الصلاحيات (Scopes)”الصلاحية هي إذن يحمله رمز الوصول الخاص بك. عند طلب رمز، تمرر قائمة من الصلاحيات مفصولة بمسافات في معامل 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 | المحاسبة، سجل السحب، التسوية | متوسطة–عالية |
| MCP | mcp.read mcp.write mcp.remove | يفتح نقل MCP (/mcp) لوكلاء الذكاء الاصطناعي | منخفضة–متوسطة |
بعض الأمور التي يجب وضعها في الاعتبار:
- اطلب الحد الأدنى. اطلب فقط الصلاحيات التي يستخدمها تكاملك فعليًا — الرمز الذي يُصدر بصلاحيات أوسع من اللازم يشكل نطاق تأثير أكبر إذا تم تسريبه.
- الصلاحيات غير المعروفة تُرفض. طلب صلاحية لم يتم تسجيل تطبيقك لها، أو صلاحية غير موجودة، يفشل عند إصدار الرمز.
mcp.*مخصصة فقط لعملاء وكلاء الذكاء الاصطناعي. تحتاجها لفتح نقل MCP؛ ليست مطلوبة لمكالمات REST API العادية. راجع بروتوكول سياق النموذج.