كجزء من عملي السريع في [IndieWebCamp Berlin](https://indieweb.org/2017/Berlin) اليوم، تمكنت من إصلاح خطأ كان قيد الإنتاج لـ [sync-server](https://github.com/neotoma/sync-server) على [Neotoma.io](https://neotoma.io) على ما يبدو منذ 28 سبتمبر 2017 عندما [أوقف Dropbox إصدار API v1 الخاص به بالكامل](https://blogs.dropbox.com/developers/2017/09/api-v1-shutdown-details/) لصالح API v2.

لم أكن على علم بهذا الخطأ حتى هذا الأسبوع حيث لم يتم تعيين معالجة الأخطاء في الإنتاج لإعلامي (عبر البريد الإلكتروني أو غير ذلك)، ولكن إعداد هذا الإشعار أصبح الآن [مهمة ذات أولوية](https://github.com/neotoma/sync-server/issues/87) لتجنب المشكلات الصامتة مثل هذه المشكلة في المستقبل.

بعد البحث في الكود، اتضح أن تطبيق [Passport](http://www.passportjs.org/) لـ Dropbox على وجه التحديد لم يكن يمرر معلمة `apiVersion` عند تهيئة [إستراتيجيتها](https://github.com/florianheinemann/passport-dropbox-oauth2)، وعلى هذا النحو، كان يتم تعيينه افتراضيًا على Dropbox's API v1 دون أن أدرك ذلك.

لقد أضفت "apiVersion" [كمعلمة هنا](https://github.com/neotoma/sync-server/commit/d9b1f15400201ef962a8dea79a121ad9d996c686#diff-25ac49459f3ccaa62fa691b8b449625cR69) وأيضًا سمة في [نموذج التخزين](https://github.com/neotoma/sync-server/commit/d9b1f15400201ef962a8dea79a121ad9d996c686#diff-430f49ef85b837131a35d1dd553659aeR23)، وتحديدها على "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 الخاص بي منذ آخر تشغيل للنسخ الاحتياطي في وقت سابق من الصيف.