Developer Platform CloudPrint
Developer Platform подходит продуктам, которые подключаются к существующим аккаунтам CloudPrint разных клиентов. Клиент один раз устанавливает ваше приложение, а затем ваш сервер получает короткоживущие токены для этой установки без повторного согласия перед каждой печатью.
Когда выбирать эту модель
Обычные API Credentials подходят, если сервер печатает только в аккаунте вашей компании. Developer Platform нужна SaaS, ERP, WMS и другим продуктам, которые обслуживают независимых клиентов с собственными аккаунтами CloudPrint. Если ваш продукт сам создаёт аккаунты CloudPrint для клиентов, используйте Partner Platform.
Кому принадлежат приложение и аккаунт
Developer Application принадлежит вашему Developer Account. В каждом клиентском аккаунте CloudPrint у приложения может быть одна App Installation. Клиент остаётся владельцем своего аккаунта и сам подтверждает разрешения. Для связи с клиентом используйте идентификатор из своей системы, а не CloudPrint account_id.
Как проходит подключение
Создайте Developer Account, зарегистрируйте Application, добавьте открытый ключ RS256 и отправьте клиенту ссылку на установку. После возврата пользователя проверьте state, сохраните installation_id рядом с идентификатором клиента, подпишите одноразовый JWT assertion приложения и обменяйте его на Installation Access Token. Этот токен используется для вызовов Print API.
Не смешивайте данные доступа
Закрытый ключ подтверждает Developer Application, но сам по себе не даёт доступ к /api/v1/*. Installation Access Token разрешает работу только с одним аккаунтом CloudPrint и только в пределах одобренных разрешений. Создавайте новый assertion для каждого обмена, кешируйте полученный токен почти до истечения срока и не записывайте ключи или токены в логи.
Какие идентификаторы хранить
Сохраняйте идентификатор клиента из своей системы, application_id, installation_id, CloudPrint account_id, одобренные разрешения и статус установки. Постоянная связь с клиентским аккаунтом — installation_id; access token действует недолго. Выпуск нового токена не создаёт установку заново и не требует повторного согласия.
Приостановка и отзыв доступа
Различайте статусы suspended и revoked. Приостановленную установку можно возобновить, а отозванную — нельзя: при новом подключении будет создан другой installation_id. Уменьшение разрешений действует сразу, а расширить их без нового согласия владельца аккаунта невозможно.
Чек-лист перед запуском
- Используйте исходящее подключение агента и не открывайте порты принтера в интернет.
- Сохраняйте стабильный идентификатор принтера, а не только отображаемое имя.
- Проверяйте формат документа, размер страницы и ориентацию до создания задания.
- Явно задайте обработку конечных статусов, повторов и защиту от двойной печати.