Perbaikan Dropbox API v2 untuk server sinkronisasi Neotoma
Sebagai bagian dari sprint kerja saya di IndieWebCamp Berlin hari ini, saya berhasil memperbaiki bug penghenti yang sedang diproduksi untuk server sinkronisasi di Neotoma dan menjalankan pekerjaan cadangan untuk check-in Foursquare / Swarm terbaru saya.
Sebagai bagian dari sprint kerja saya di IndieWebCamp Berlin hari ini, saya berhasil memperbaiki bug yang menghentikan pertunjukan yang sedang diproduksi untuk sync-server di Neotoma.io tampaknya sejak 28 September 2017 ketika Dropbox menghentikan API-nya sepenuhnya v1 mendukung API v2.
Saya baru menyadari adanya bug ini pada minggu ini karena penanganan kesalahan dalam produksi belum disetel untuk memberi tahu saya (melalui email atau lainnya), namun menyiapkan notifikasi tersebut sekarang menjadi tugas yang diprioritaskan untuk menghindari masalah diam-diam seperti ini di masa mendatang.
Setelah menggali lebih dalam kodenya, ternyata penerapan Passport untuk Dropbox khususnya tidak meneruskan parameter apiVersion saat inisialisasi strateginya, dan dengan demikian, API v1 Dropbox ditetapkan secara default tanpa saya sadari.
Saya telah menambahkan apiVersion sebagai parameter di sini dan juga sebagai atribut pada model penyimpanan, khususnya menyetelnya ke “2” untuk dokumen penyimpanan Dropbox.
Catatan: Atribut ini tampaknya harus berupa string, bukan bilangan bulat, yang terakhir gagal berfungsi untuk saya ketika dicoba.
req.strategy = pasporStrategi baru.Strategi({
apiVersion: dokumen.apiVersion,
ID klien: dokumen.clientId,
Rahasia Klien: dokumen.Rahasia Klien,
kunci konsumen: document.clientId,
Rahasia Konsumen: dokumen.Rahasia Klien,
callbackURL: `${req.protocol}://${req.get('host')}${path.resolve('/', Model.modelType(), document.slug, 'auth-callback')}`,
passReqToCallback: benar,
profileFields: ['id', 'displayName', 'email']
}...Hasilnya, autentikasi Dropbox kini berfungsi kembali dan saya dapat menjalankan tugas pencadangan untuk check-in Foursquare / Swarm saya, menyinkronkan yang terbaru ke Dropbox saya sejak terakhir kali menjalankan pencadangan pada awal musim panas.