Correctif de l'API Dropbox v2 pour le serveur de synchronisation Neotoma

Dans le cadre de mon sprint de travail à IndieWebCamp Berlin aujourd'hui, j'ai réussi à corriger un bug majeur qui était en production pour le serveur de synchronisation sur Neotoma et à exécuter une tâche de sauvegarde pour mes derniers enregistrements Foursquare / Swarm.

Dans le cadre de mon sprint de travail à IndieWebCamp Berlin aujourd'hui, j'ai réussi à corriger un bug spectaculaire qui était en production pour sync-server sur Neotoma.io apparemment depuis le 28 septembre 2017, lorsque Dropbox a complètement retiré son API v1 en faveur de l'API v2.

Je n'étais pas au courant de ce bug jusqu'à cette semaine puisque la gestion des erreurs en production n'a pas été configurée pour m'avertir (par e-mail ou autrement), mais la configuration de cette notification est maintenant une tâche prioritaire pour éviter des problèmes silencieux comme celui-ci à l'avenir.

Après avoir fouillé le code, il s'est avéré que l'implémentation de Passport pour Dropbox ne transmettait pas spécifiquement un paramètre « apiVersion » lors de l'initialisation de sa stratégie, et en tant que telle, elle utilisait par défaut l'API v1 de Dropbox sans que je m'en rende compte.

J'ai ajouté apiVersion en tant que paramètre ici et également en tant qu'attribut sur le modèle de stockage, en le définissant spécifiquement sur « 2 » pour le document de stockage de Dropbox.

Remarque : Cet attribut doit apparemment être une chaîne, et non un entier, ce dernier n'ayant pas fonctionné lors de ma tentative.

req.strategy = nouveau passeportStrategy.Strategy({
  apiVersion : document.apiVersion,
  ID client : document.ID client,
  clientSecret : document.clientSecret,
  consumerKey : document.clientId,
  consumerSecret : document.clientSecret,
  callbackURL : `${req.protocol}://${req.get('host')}${path.resolve('/', Model.modelType(), document.slug, 'auth-callback')}`,
  passReqToCallback : vrai,
  profileFields : ['id', 'displayName', 'emails']
}...

En conséquence, l'authentification Dropbox fonctionne désormais à nouveau et j'ai pu exécuter une tâche de sauvegarde pour mes enregistrements Foursquare / Swarm, en synchronisant les plus récents avec mon Dropbox depuis la dernière sauvegarde plus tôt cet été.

2 lecture min.technical
Partager