Исправление Dropbox API v2 для сервера синхронизации Neotoma

Сегодня в рамках моего рабочего спринта на IndieWebCamp в Берлине мне удалось исправить досадную ошибку, которая наблюдалась на сервере синхронизации на Neotoma, и запустить задание резервного копирования для моих последних чекинов в Foursquare/Swarm.

Сегодня в рамках моего рабочего спринта на IndieWebCamp Berlin мне удалось исправить ошеломляющую ошибку, которая наблюдалась для sync-server на Neotoma.io, очевидно, с 28 сентября 2017 года, когда Dropbox полностью отказался от своего API v1 в пользу API v2.

Я не знал об этой ошибке до этой недели, поскольку обработка ошибок в производстве не была настроена на уведомление меня (по электронной почте или другим способом), но настройка этого уведомления теперь является приоритетной задачей, чтобы избежать подобных проблем в будущем.

Покопавшись в коде, выяснилось, что реализация Passport для Dropbox конкретно не передавала параметр apiVersion при инициализации своей стратегии, и поэтому без моего ведома по умолчанию использовалась Dropbox API v1.

Я добавил apiVersion здесь в качестве параметра, а также в качестве атрибут модель хранилища, специально установив для него значение «2» для хранилища Dropbox. документ.

Примечание: очевидно, что этот атрибут должен быть строкой, а не целым числом, последнее из которых у меня не сработало при попытке.

req.strategy = новый паспортStrategy.Strategy({
  apiVersion: document.apiVersion,
  clientID: document.clientId,
  clientSecret: document.clientSecret,
  ConsumerKey: document.clientId,
  потребительскийсекрет: document.clientSecret,
  callbackURL: `${req.protocol}://${req.get('host')}${path.resolve('/', Model.modelType(), document.slug, 'auth-callback')}`,
  passReqToCallback: правда,
  ProfileFields: ['id', 'displayName', 'email']
}...

В результате аутентификация Dropbox теперь снова работает, и я смог запустить задание резервного копирования для моих отметок Foursquare/Swarm, синхронизируя самые последние из них с моим Dropbox с момента последнего запуска резервного копирования ранее летом.

2 минута чтенияtechnical
Делиться