Перейти к содержанию

Получить токен установки приложения

Аутентифицируйте Developer Application одноразовым RS256 assertion и получите короткоживущий токен одной подтверждённой App Installation.

POST/developer-api/v1/app-installations/{installationId}/access-tokensВерсия API: v1operationId: issueInstallationAccessTokenОткрыть в Markdown

Назначение метода

Аутентифицируйте Developer Application одноразовым RS256 assertion и получите короткоживущий токен одной подтверждённой App Installation.

Авторизация

Передавайте одноразовый RS256 assertion Developer Application в Authorization: Bearer <application_assertion>. Это не токен доступа к Public API.

Запрос

Основной адрес API: https://public-api.cloudprint.me/developer-api/v1/app-installations/{installationId}/access-tokens

Параметры

ИмяРасположениеТипОбязательноОписаниеОграничения
installationIdpathstring (uuid)даСтабильный UUID App Installation, который интегратор хранит в своём сопоставлении.

Тело запроса

Тип содержимого: application/json

ИмяТипОбязательноОписаниеОграничения
permissionsarrayнетРазрешения установки, включённые в этот токен.

Примеры запросов

cURL

bash
curl -sS https://public-api.cloudprint.me/developer-api/v1/app-installations/$INSTALLATION_ID/access-tokens \
  -H "Authorization: Bearer $APPLICATION_ASSERTION" \
  -H 'Content-Type: application/json' \
  -d '{"permissions":["documents:write","print_jobs:write"]}'

Ответ

HTTP-статус: 200 — Запрос выполнен.

Поля ответа

ИмяТипОбязательноОписаниеОграничения
access_tokenstringдаКороткоживущий OAuth2 Bearer-токен для запросов к Public API.example: "eyJ..."
token_typestringдаТип OAuth2-токена; Public API использует Bearer.enum: Bearer
expires_inintegerдаСрок действия токена доступа в секундах с момента выдачи.min: 1; example: 3600
installation_idstring (uuid)даСтабильный UUID App Installation, выдавшей разрешение токену.
account_idstring (uuid)даСтабильный UUID аккаунта CloudPrint, которому принадлежит ресурс.
permissionsarrayдаРазрешения установки, включённые в этот токен.

Пример ответа

json
{
  "access_token": "eyJ...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "installation_id": "11111111-1111-4111-8111-111111111111",
  "account_id": "11111111-1111-4111-8111-111111111111",
  "permissions": [
    "agents:read"
  ]
}

Ошибки

HTTP-статусОписание
401Авторизация отсутствует или недействительна.
422Поля запроса не прошли проверку.
429Превышен лимит запросов; учитывайте Retry-After.
500Внутренняя ошибка CloudPrint.

Рекомендации по интеграции

  • Создавайте новый assertion для каждого запроса: RS256, kid активного ключа, client_id приложения в iss и sub, точный URL метода в aud, срок не более пяти минут и уникальный jti.
  • Свяжите стабильный installation_id со своим клиентом или tenant. Этот метод принимает только installation_id, но не внешний идентификатор клиента.
  • Refresh token отсутствует. Кешируйте токен установки почти до окончания expires_in, затем выпускайте новый без повторной установки пользователем.

Связанная документация

Руководства по интеграции CloudPrint, подключению локального агента и надёжной работе печати.