Синхронизация Zoho CRM может работать идеально в течение нескольких недель, а затем начать возвращаться: INVALID_OAUTHTOKEN Очевидный ответ — запросить другой токен. Зачастую это неправильное решение. Мы столкнулись с этим классом проблем при разработке Zoho Integration Serv...
Синхронизация Zoho CRM может работать идеально в течение нескольких недель, а затем начать возвращаться:
INVALID_OAUTHTOKEN
Очевидный ответ — запросить другой токен. Зачастую это неправильное решение.
Мы столкнулись с этим классом проблем при разработке Zoho Integration Services на основе серверной части Node.js и PostgreSQL. Интеграция включала фоновые рабочие процессы, запланированную синхронизацию и одновременное выполнение нескольких запросов API.
Сложность заключалась не в вызове Zoho API. Он решал, кому принадлежат состояние OAuth, конфигурация центра обработки данных, повторные попытки и потребление кредитов API.
В этой статье рассматривается этот режим отказа. В реализации используются Node.js 20+ и PostgreSQL с Zoho CRM API v8 в качестве границы интеграции.
Ключевое изменение простое: рассматривайте аутентификацию Zoho и ограничения API как общую инфраструктуру, а не как свойства отдельных HTTP-запросов.
1. Начинайте с сбоя, а не с SDK
Ответ INVALID_OAUTHTOKEN дал нам первую полезную подсказку. Zoho документирует несколько причин, в том числе использование токена не в том центре обработки данных и создание слишком большого количества токенов активного доступа из одного и того же токена обновления. Токены доступа действительны в течение одного часа.
Наша наивная реализация выглядела так:
// Н