كيف يعمل
يدعم Flowella ثلاثة أنواع من منح OAuth: رمز التفويض مع PKCE لمؤسسات العملاء، وبيانات اعتماد العميل لمؤسستك الخاصة، ورموز التحديث. يوضح التسلسل كيف يثبّت العميل تطبيقك باستخدام منحة رمز التفويض.قبل أن تبدأ
- تحتاج إلى دور Owner أو Admin في المؤسسة التي ستملك التطبيق. يمكن للأدوار الأخرى رؤية Developer apps في القائمة، لكن القائمة لا تُحمَّل لهم.
- يحتاج تطبيقك إلى عنوان رد اتصال (redirect URI) يمكنه استقبال رمز التفويض.
- يجب أن يرسل تطبيقك قيمة
stateوقيمة PKCEcode_challengeمُنشأة باستخدامS256مع كل طلب تفويض.
تسجيل تطبيق
1
افتح Developer apps
انتقل إلى Settings، ثم اختر Developer apps في مجموعة Developer.
2
ابدأ تطبيقًا جديدًا
اختر Create app. يُفتح مربع الحوار Create developer app.
3
سمِّ التطبيق
في App name، أدخل الاسم الذي يعرف به العملاء منتجك، بحد أقصى 120 حرفًا، على سبيل المثال
Acme CRM connector.4
أضف عناوين إعادة التوجيه
في Redirect URIs، أدخل كل عنوان رد اتصال في سطر مستقل، بحد أقصى 20 عنوانًا. أثناء التفويض، يجب أن يطابق
redirect_uri الذي يرسله تطبيقك أحد هذه العناوين تمامًا.5
اختر النطاقات
ضمن Scopes، تكون نطاقات القراءة محددة مسبقًا. حدّد أي نطاق آخر يحتاجه تطبيقك وألغِ تحديد النطاقات التي لا يحتاجها. هذه هي أقصى النطاقات التي يمكن لتطبيقك طلبها. راجع النطاقات.
6
أنشئ التطبيق وانسخ السر
اختر Create app. يعرض مربع الحوار Save your client secret سر العميل، الذي يبدأ بـ
flc_. اختر Copy، وخزّن السر على خادمك، ثم اختر Done.floa_) وRedirect URIs وتاريخ Created، مع زر Delete ضمن Actions.
توجيه العميل عبر التفويض
أرسل متصفح العميل إلى نقطة نهاية التفويض على مضيف تطبيق Flowella:
إذا كان الطلب غير صالح، يعرض Flowella خطأ بدلًا من شاشة الموافقة ولا يعيد التوجيه. يحدث ذلك، على سبيل المثال، عندما لا يتطابق
redirect_uri أو عندما يكون أحد النطاقات غير مسموح به.
ما يراه العميل
- إذا لم يكن الشخص مسجّل الدخول، يطلب منه Flowella تسجيل الدخول أولًا.
- يجب أن يكون الشخص Owner أو Admin في المؤسسة. يرى أي شخص آخر الخطأ
Owner or admin role required to authorize apps. - تعرض شاشة Authorize app قيمة Client ID: الخاصة بك وRequested scopes:. إذا لم يرسل تطبيقك
scope، تعرض This app will receive its default allowed scopes. - يختار الشخص Allow access أو Deny.
redirect_uri الخاص بك مع code وstate في سلسلة الاستعلام. يكون الرمز صالحًا لمدة 10 دقائق ويعمل مرة واحدة. ويرسل Deny المتصفح إلى redirect_uri الخاص بك مع error=access_denied وerror_description وقيمة state الخاصة بك.
استبدال الرمز بالرموز المميزة
يستبدل خادمك الرمز عند نقطة نهاية الرموز. صادق باستخدام معرّف العميل والسر، إما عبر مصادقة HTTP Basic أو بوصفهماclient_id وclient_secret في نص الطلب. يمكن أن يكون نص الطلب بترميز النماذج أو بتنسيق JSON.
تقبل نقطة نهاية الرموز 30 طلبًا في الدقيقة لكل معرّف عميل وعنوان IP. وفوق ذلك، تُرجع
429 مع ترويسة Retry-After.
استدعاء API
أرسل رمز الوصول كـ bearer token، تمامًا مثل مفتاح API:403 INSUFFICIENT_SCOPE. لكل رمز وصول حد معدل خاص به. راجع مقدمة API.
يقبل
POST /v1/templates/send مفاتيح API فقط ويرفض رموز وصول OAuth مع 401.تحديث رمز الوصول
قبل انتهاء صلاحية رمز الوصول، اطلب رمزًا جديدًا باستخدامgrant_type=refresh_token وrefresh_token ومصادقة العميل الخاصة بك. تحتوي الاستجابة على رمز وصول جديد ورمز تحديث جديد، ويتوقف رمز التحديث القديم عن العمل. إذا قدّم شخص ما رمز تحديث سبق استخدامه، يلغي Flowella كل رمز صادر عن ذلك التفويض، ويتعين على العميل الموافقة على تطبيقك مرة أخرى.
الوصول إلى مؤسستك الخاصة
لاستدعاء API للمؤسسة التي تملك التطبيق، استخدمgrant_type=client_credentials مع مصادقة العميل وقيمة scope اختيارية. تحصل على رمز وصول دون رمز تحديث. بعد ذلك يظهر تطبيقك ضمن Installed apps في مؤسستك.
إلغاء رمز أو فحصه
تحتاج كلتا نقطتي النهاية إلى مصادقة العميل الخاصة بك. يسرد مستند الاكتشاف على
https://app.flowella.io/.well-known/oauth-authorization-server كل نقطة نهاية وكل خيار مدعوم.
مراجعة التطبيقات المثبتة وإلغاء وصولها
يدير العملاء التطبيقات التي وافقوا عليها ضمن Installed apps. تحتاج إلى دور Owner أو Admin. تعرض القائمة:
لإلغاء وصول تطبيق:
- انتقل إلى Settings، ثم اختر Installed apps في مجموعة Developer.
- اختر Revoke في صف التطبيق.
- أكّد المطالبة Revoke this install? Existing tokens stop working.
لا يؤدي إلغاء وصول تطبيقك الخاص في مؤسستك إلى إيقاف منحة بيانات اعتماد العميل: إذ يمكن للتطبيق طلب رمز جديد، مما يعيد تفعيل التثبيت. لقطع وصول تطبيقك الخاص بالكامل، احذفه ضمن Developer apps.
حذف تطبيق
في Developer apps، اختر Delete في صف التطبيق وأكّد Delete this app and its tokens? يزيل Flowella التطبيق، وتثبيته في كل مؤسسة وافقت عليه، وجميع رموزه. لا يمكن التراجع عن ذلك.استكشاف الأخطاء وإصلاحها
Could not load developer apps أو Could not load installed apps
Could not load developer apps أو Could not load installed apps
لا يستطيع عرض هذه الشاشات إلا أصحاب دور Owner وAdmin. اطلب من صاحب دور Owner أو Admin إدارة التطبيق لك. لا يمكن تغيير الأدوار في التطبيق: راجع تغيير دور شخص ما.
عدم تطابق عنوان إعادة التوجيه
عدم تطابق عنوان إعادة التوجيه
يجب أن يطابق
redirect_uri في الطلب أحد عناوين إعادة التوجيه المسجّلة للتطبيق تمامًا، بما في ذلك البروتوكول والمسار وأي شرطة مائلة في النهاية. ويجب إرسال القيمة نفسها مرة أخرى عند استبدال الرمز. لا يمكنك تعديل عناوين إعادة التوجيه لتطبيق ما، لذا سجّل تطبيقًا جديدًا إذا احتجت إلى عنوان مختلف.invalid_scope
invalid_scope
أحد النطاقات المطلوبة مكتوب بشكل خاطئ أو ليس من نطاقات التطبيق. لا تطلب إلا النطاقات التي حددتها عند تسجيل التطبيق.
فشل استبدال الرمز
فشل استبدال الرمز
تعني الرسالتان
Authorization code expired وAuthorization code already used أنك تحتاج إلى بدء التفويض من جديد: تدوم الرموز 10 دقائق وتعمل مرة واحدة. وتعني PKCE verification failed أن code_verifier لا يطابق code_challenge الذي أرسلته.ذات صلة
مقدمة API
المصادقة والنطاقات وحدود المعدل والأخطاء.
مركز المطورين
طلبات API الأخيرة وأدلة البدء السريع وبيئة API التجريبية.
مفاتيح API
وصول أبسط لبرامجك النصية وتكاملاتك الخاصة.
مرجع Webhooks
استجب للأحداث في المؤسسات التي تثبّت تطبيقك.

