هذا سلوك معروف لكيفية تعامل n8n مع OAuth2، لكنه عادة ما يكون مشكلة في الإعداد/التكوين بدلاً من أن يكون خللاً. يدعم n8n فعلاً نوع منحة refresh_token، لكن واجهة برمجة التطبيقات الخاصة بـ Zoho معروفة بكونها صارمة جداً فيما يتعلق بكيفية تنسيق طلب التحديث (خاصة بحيث تطلب وضع grant_type في نص الطلب وليس سلسلة الاستعلام، وتطلب بيانات اعتماد عميل محددة).
بناءً على كتلة البيانات الاعتمادية التي تستخدمها، إليك كيفية حل هذه المشكلة. انظر أيها ينطبق عليك:
إذا كنت تستخدم عقدة Zoho المدمجة، فتأكد من أنك قد اخترت واجهة برمجة التطبيقات الصحيحة من Zoho (على سبيل المثال، Zoho CRM أو Zoho Books) حيث أن لكل منها نطاقات مختلفة.
إذا كنت تستخدم عقدة HTTP Request مع Generic OAuth2، فقم بتكوين بيانات الاعتماد بالضبط كما يلي:
نوع المنحة:Authorization Code
عنوان URL للتفويض:https://accounts.zoho.com/oauth/v2/auth
عنوان URL لرمز الوصول:https://accounts.zoho.com/oauth/v2/token
معرّف العميل:[معرّف Zoho الخاص بك]
سر العميل:[سر Zoho الخاص بك]
النطاق: (تأكد من أن لديك النطاقات الدقيقة المطلوبة، على سبيل المثال، ZohoCRM.modules.ALL)
معاملات الاستعلام في عنوان URL للمصادقة: أضف access_type=offline وprompt=consent.
حرج: بدون access_type=offline، لن تصدر Zoho رمز تحديث، وسيفشل n8n في تحديث الجلسة، مما يؤدي إلى الخطأ الذي تلقيته.
مرحباً @taamtera
n8n يدعم منحة refresh_token، لذا هذا ليس ميزة مفقودة. نقطة نهاية الرمز المميز في Zoho هي الاستثناء: توثيقها الخاص يسرد grant_type و client_id و client_secret و refresh_token كمعاملات سلسلة استعلام لـ /oauth/v2/token وينص على أن نقطة النهاية لا تقبلها المرسلة ككائن نص، وهذا هو السبب في أن فريق خادم Zoho الخلفي لا يرى grant_type في استدعاء التحديث.
المسار الموثوق هو التوقف عن الاعتماد على تحديث بيانات الاعتماد التلقائي وتشغيله بنفسك. احصل على رمز التحديث مرة واحدة، قم بتخزينه، ثم قم بالتحديث باستخدام عقدة HTTP Request بـ POST إلى عنوان URL الحسابات الخاص بمركز بيانات الخاص بك مع المعاملات في سلسلة الاستعلام:
استخدم مجال الحسابات الخاص بمركز البيانات الذي أصدر الرمز المميز (.eu أو .in أو .com.au أو .ca)، الرمز المميز من مركز بيانات واحد لن يتم تحديثه مقابل آخر.
انظر إلى هذا:
n8n يدعم منحة refresh-token. العميل OAuth الحالي يبني جسم طلب الرمز باستخدام refresh_token و grant_type: refresh_token. بيانات اعتماد Zoho المدمجة تستخدم تدفق authorization-code، وتطلب access_type=offline، وترسل مصادقة العميل في الجسم، وتعرض عنوان URL الخاص بـ Zoho الخاص بالمنطقة.
لا تحاول تحديد refresh_token كـ Grant Type الأولي لبيانات الاعتماد. إنها خطوة التحديث ضمن بيانات اعتماد authorization-code، وليست خيار إعداد منفصل.
التفصيل المفقود هو إصدار n8n الخاص بك ونوع بيانات الاعتماد الدقيق. إذا كانت هذه بيانات اعتماد Zoho المدمجة، فتأكد من أن Access Token URL الخاص بها يطابق مركز بيانات Zoho الخاص بك. أعد توصيل بيانات الاعتماد بحيث يقوم n8n بتخزين رمز refresh offline جديد، ثم حاول مرة أخرى.
إذا كانت Zoho لا تزال تسجل طلب رمز بدون grant_type في إصدار n8n الحالي، فهذا عبارة عن خطأ قابل للتكرار. قم بتضمين الإصدار ونوع بيانات الاعتماد وعنوان url لنقطة نهاية الرمز وسجل طلب Zoho مع إخفاء الهوية في التقرير. لا تضمن الرموز أو أسرار العميل.