إصلاح Dropbox API v2 لخادم مزامنة Neotoma

كجزء من عملي السريع في IndieWebCamp Berlin اليوم، تمكنت من إصلاح الخلل الذي كان قيد الإنتاج لخادم المزامنة على Neotoma وتشغيل مهمة النسخ الاحتياطي لأحدث تسجيلات الوصول إلى Foursquare / Swarm.

كجزء من عملي السريع في IndieWebCamp Berlin اليوم، تمكنت من إصلاح خطأ كان قيد الإنتاج لـ sync-server على Neotoma.io على ما يبدو منذ 28 سبتمبر 2017 عندما أوقف Dropbox إصدار API v1 الخاص به بالكامل لصالح API v2.

لم أكن على علم بهذا الخطأ حتى هذا الأسبوع حيث لم يتم تعيين معالجة الأخطاء في الإنتاج لإعلامي (عبر البريد الإلكتروني أو غير ذلك)، ولكن إعداد هذا الإشعار أصبح الآن مهمة ذات أولوية لتجنب المشكلات الصامتة مثل هذه المشكلة في المستقبل.

بعد البحث في الكود، اتضح أن تطبيق Passport لـ Dropbox على وجه التحديد لم يكن يمرر معلمة apiVersion عند تهيئة إستراتيجيتها، وعلى هذا النحو، كان يتم تعيينه افتراضيًا على Dropbox's API v1 دون أن أدرك ذلك.

لقد أضفت "apiVersion" كمعلمة هنا وأيضًا سمة في نموذج التخزين، وتحديدها على "2" لـ مستند تخزين Dropbox.

ملاحظة: يبدو أن هذه السمة يجب أن تكون سلسلة، وليست عددًا صحيحًا، وقد فشل الأخير في العمل معي عند المحاولة.

req.strategy = جواز السفر الجديدStrategy.Strategy({
  apiVersion: document.apiVersion،
  معرف العميل: document.clientId،
  ClientSecret: document.clientSecret،
  مفتاح المستهلك: document.clientId،
  ConsumerSecret: document.clientSecret،
  عنوان URL لرد الاتصال: `${req.protocol}://${req.get('host')}${path.resolve('/', Model.modelType(), document.slug, 'auth-callback')}`,
  passReqToCallback: صحيح،
  حقول الملف الشخصي: ["المعرف"، "اسم العرض"، "رسائل البريد الإلكتروني"]
}...

ونتيجة لذلك، تعمل مصادقة Dropbox الآن مرة أخرى وتمكنت من تشغيل مهمة نسخ احتياطي لتسجيلات الوصول الخاصة بـ Foursquare / Swarm، ومزامنة أحدثها مع Dropbox الخاص بي منذ آخر تشغيل للنسخ الاحتياطي في وقت سابق من الصيف.

2 دقيقة قراءةtechnical
يشارك