Срок действия токенов UPS API: что проверить разработчику

Почему интеграции UPS должны учитывать expires_in и как отличить срок токена от фиксированного интервала обновления.

A developer working on a laptop beside a desk clock and a small parcel.

Интеграция может успешно получить доступ к UPS API, а спустя некоторое время начать возвращать ошибки авторизации. Одна из возможных причин — истёкший токен. Сам факт получения токена не делает его бессрочным.

Где указан срок действия?

В официальной спецификации UPS OAuth Client Credentials ответ содержит поле expires_in. Оно описывает срок действия запрошенного токена в секундах. Значение нужно обрабатывать из ответа сервера, а не подменять однажды выбранной константой.

Что проверить в интеграции?

В спецификации expires_in имеет тип строки. При вычислении времени окончания доступа преобразуйте значение в число и учитывайте секунды. Сохраняйте срок вместе с токеном.

Практический подход — получать новый токен до истечения срока с небольшим запасом на выполнение запроса. Это рекомендация по устройству интеграции, а не отдельный срок, установленный UPS. Если одновременно работают несколько процессов, проверьте, не запрашивает ли каждый новый токен без необходимости.

При ошибке авторизации сначала установите причину: истечение срока — не единственный возможный вариант. Не запускайте бесконечный повтор одинаковых запросов и не записывайте токены или секреты клиента в обычные журналы.

Кому полезна эта проверка?

Разработчикам магазинов, служб доставки и других систем, которые напрямую используют UPS API. Обычному отправителю, оформляющему посылку через готовую платформу, не требуется самостоятельно получать OAuth-токен.

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

Вопросы и ответы

Можно ли установить один постоянный срок для всех токенов?

Не следует подменять ответ сервера постоянным значением. Используйте срок из expires_in для полученного токена.

В каких единицах приходит expires_in?

В секундах. В спецификации UPS поле имеет тип строки, поэтому для расчётов его нужно преобразовать в число.

Обычному отправителю нужно самому получать токен?

Нет, если он пользуется готовой платформой доставки. Эта настройка нужна разработчикам систем, напрямую работающих с UPS API.

Рассчитать доставку

Укажите параметры посылки и сравните варианты доставки через Topparcel.

Введите данные посылки и отправьте

kg
cm
cm
cm

Похожие статьи

Все публикации