Добавление новых пользователей в подписку
В этой статье рассмотрен процесс добавления нового пользователя в подписку, получения списка пользователей в подписке и удаление пользователя из подписки.
Приступая к работе
Вам понадобятся следующие инструменты и возможности:
Знания по использованию API key в FastReport Corporate Server.
В этой статье будет пропущена дополнительная информация по аутентификации и авторизации.
Инструмент curl.
Подойдёт любой другой REST клиент, но примеры будут построены для curl.
Активная подписка для FastReport.Cloud, в которой есть хотя бы два слота для пользователя.
Доступ в интернет.
Инструкция
Есть два способа добавить пользователя в подписку - напрямую, указав его id, или с помощью системы приглашений.
Добавляем пользователя через приглашение
Для создания приглашения нам нужен идентификатор подписки.
Получите идентификатор подписки сделав
GET
запрос наhttps://fastreport.cloud/api/manage/v1/Subscriptions?skip=0&take=10
.Пример запроса.
curl -X GET "https://localhost:5001/api/manage/v1/Subscriptions?skip=0&take=10" -H "accept: text/plain"
Пример ответа.
{ "subscriptions": [ { "id": "604f52e1261a3c19104c0e25", "name": "iwantpizza", "locale": null, "current": { "startTime": "2021-03-15T12:28:17.773Z", "endTime": "2121-03-15T12:28:17.773Z", "plan": { "id": "5f89b4d722d2d823440b6d10", "isActive": false, "displayName": "unlimited", "timePeriodType": "Year", "timePeriod": 100, "readonlyTimeLimitType": "Second", "readonlyTimeLimit": 0, "templatesSpaceLimit": 1048576000, "reportsSpaceLimit": 1048576000, "exportsSpaceLimit": 1048576000, "fileUploadSizeLimit": 1073741824, "dataSourceLimit": 10, "maxUsersCount": 10, "hasSpaceOverdraft": false, "groupLimit": 5, "onlineDesigner": true, "isDemo": false, "urlToBuy": "https://fast-report.com", "unlimitedPage": true, "pageLimit": 0 } }, "old": null, "invites": null, "templatesFolder": { "folderId": "604f52e1261a3c19104c0e22", "bytesUsed": 241247 }, "reportsFolder": { "folderId": "604f52e1261a3c19104c0e23", "bytesUsed": 16384 }, "exportsFolder": { "folderId": "604f52e1261a3c19104c0e24", "bytesUsed": 8059419 } } ], "count": 1, "skip": 0, "take": 10 }
Идентификатор подписки из примера выше
604f52e1261a3c19104c0e25
.Для создания приглашения выполните
POST
запрос наhttps://fastreport.cloud/api/manage/v1/Subscriptions/{subscriptionId}/invite
, где вместо{subscriptionId}
нужно будет указать идентификатор подписки.Указав в теле запроса свойства приглашения.
Пример тела.
{ "usages": 1, "durable": true, "expiredDate": "2021-03-25T11:53:29.351Z" }
usages означает возможное количество использований,
durable установленный в true указывает, что количество использований не ограничено,
expiredDate указывает на срок окончания действия приглашение (свойство durable не сделает приглашение вечно действующим).
Если оставить тело пустым, создастся одноразовое приглашение, которое перестанет работать на следующий день.
Пример запроса.
curl -X POST "https://localhost:5001/api/manage/v1/Subscriptions/604f52e1261a3c19104c0e25/invite" -H "accept: text/plain" -H "Content-Type: application/json-patch+json" -d "{ \"usages\": 1, \"durable\": true, \"expiredDate\": \"2021-03-25T11:53:29.351Z\"}"
Пример ответа.
{ "id": "604f52e1261a3c19104c0e25", "name": "iwantpizza", "locale": null, "current": { "startTime": "2021-03-15T12:28:17.773Z", "endTime": "2121-03-15T12:28:17.773Z", "plan": { "id": "5f89b4d722d2d823440b6d10", "isActive": false, "displayName": "unlimited", "timePeriodType": "Year", "timePeriod": 100, "readonlyTimeLimitType": "Second", "readonlyTimeLimit": 0, "templatesSpaceLimit": 1048576000, "reportsSpaceLimit": 1048576000, "exportsSpaceLimit": 1048576000, "fileUploadSizeLimit": 1073741824, "dataSourceLimit": 10, "maxUsersCount": 10, "hasSpaceOverdraft": false, "groupLimit": 5, "onlineDesigner": true, "isDemo": false, "urlToBuy": "https://fast-report.com", "unlimitedPage": true, "pageLimit": 0 } }, "old": null, "invites": [ { "usages": 1, "durable": true, "accessToken": "fj3534g341ir7dyytfiaap9z1r", "expiredDate": "2021-03-25T11:53:29.351Z", "addedUsers": [], "creatorUserId": "2df79f83-07f1-41ba-96b5-7757bbf377df" } ], "templatesFolder": { "folderId": "604f52e1261a3c19104c0e22", "bytesUsed": 241247 }, "reportsFolder": { "folderId": "604f52e1261a3c19104c0e23", "bytesUsed": 16384 }, "exportsFolder": { "folderId": "604f52e1261a3c19104c0e24", "bytesUsed": 8059419 } }
В подписке появилось приглашение токеном доступа
fj3534g341ir7dyytfiaap9z1r
.Нужно передать ссылку на принятие приглашения (или сам токен доступа) пользователю, которого вы хотите пригласить (любым удобным для вас способом). Итоговая ссылка будет выглядеть так -
https://fastreport.cloud/api/manage/v1/Subscriptions/{subscriptionId}/invite/{accessToken}/accept
, где вместо{subscriptionId}
нужно будет указать идентификатор подписки, а вместо{accessToken}
- токен доступа.Теперь приглашаемый пользователь может перейти по этой ссылке прямо в браузере или же отправить
GET
запрос наhttps://fastreport.cloud/api/manage/v1/Subscriptions/{subscriptionId}/invite/{accessToken}/accept
, где вместо{subscriptionId}
нужно будет указать идентификатор подписки, а вместо{accessToken}
- токен доступа.Пример запроса.
curl -X GET "https://athena.fast-report.com/api/manage/v1/Subscriptions/6051f2a06c07a10001737394/invite/to9kxrxdz4iwbfyz3pq4fktdcr/accept" -H "accept: text/plain"
Удаление приглашения
Когда у приглашения заканчиваются использования, или срок его действия подходит к концу, оно не удаляется автоматически. Нужно будет сделать это вручную, отправив
DELETE
запрос наhttps://fastreport.cloud/api/manage/v1/Subscriptions/{subscriptionId}/invite/{accessToken}
Пример запроса.curl -X DELETE "https://athena.fast-report.com/api/manage/v1/Subscriptions/6051f2a06c07a10001737394/invite/to9kxrxdz4iwbfyz3pq4fktdcr" -H "accept: text/plain"
В ответ будет получено пустое сообщение с кодом
NO CONTENT 204
.
Добавляем пользователя напрямую
Для добавления нового пользователя в подписку необходим идентификатор подписки.
Получите идентификатор подписки сделав
GET
запрос наhttps://fastreport.cloud/api/manage/v1/Subscriptions?skip=0&take=10
.Пример запроса.
curl -X GET "https://fastreport.cloud/api/manage/v1/Subscriptions?skip=0&take=10" -H "accept: text/plain"
Пример ответа.
{ "subscriptions": [ { "id": "5fa919fa292a8300019349bc", "name": "Awesome Corp", "current": { "startTime": "2020-11-17T10:22:58.584Z", "endTime": "2025-11-17T10:22:58.584Z", "plan": { "id": "5f43924b0231500001225686", "isActive": false, "displayName": "The greatest power", "timePeriodType": "Year", "timePeriod": 5, "readonlyTimeLimitType": "Second", "readonlyTimeLimit": 0, "templatesSpaceLimit": 1048576000, "reportsSpaceLimit": 1048576000, "exportsSpaceLimit": 1048576000, "fileUploadSizeLimit": 1048576000000, "dataSourceLimit": 10, "maxUsersCount": 10, "hasSpaceOverdraft": false, "groupLimit": 5, "onlineDesigner": true, "isDemo": false, "urlToBuy": "https://fast-report.com", "unlimitedPage": true, "pageLimit": 15 } }, "old": [], "templatesFolder": { "folderId": "5fa919f9292a8300019349b9", "bytesUsed": 1668491 }, "reportsFolder": { "folderId": "5fa919f9292a8300019349ba", "bytesUsed": 6085990 }, "exportsFolder": { "folderId": "5fa919fa292a8300019349bb", "bytesUsed": 8336710 } } ], "count": 1, "skip": 0, "take": 10 }
Идентификатор подписки из примера выше
5fa919fa292a8300019349bc
.Для добавления нового пользователя сделайте
PUT
запросhttps://fastreport.cloud/api/manage/v1/Subscriptions/{subscriptionId}/users/{userId}
, где вместо{subscriptionId}
следует передать идентификатор подписки, а вместо{userId}
следует передать идентификатор пользователя.Пример запроса.
curl -X PUT "https://fastreport.cloud/api/manage/v1/Subscriptions/5fa919fa292a8300019349bc/users/5af5a8dc-8cb0-40f9-ac99-ca2533fa4492" -H "accept: text/plain"
В ответ вы получите пустое сообщение со статус кодом
OK 200
.Для получения списка пользователей сделайте
GET
запрос наhttps://fastreport.cloud/api/manage/v1/Subscriptions/{id}/users?skip=0&take=10
, где место{id}
следует указать идентификатор подписки.Пример запроса.
curl -X GET "https://fastreport.cloud/api/manage/v1/Subscriptions/5fa919fa292a8300019349bc/users?skip=0&take=10" -H "accept: text/plain"
Пример ответа.
{ "users": [ { "userId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491" }, { "userId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4492" } ], "count": 2, "take": 10, "skip": 0 }
Для удаления пользователя из подписки сделайте
DELETE
запрос наhttps://fastreport.cloud/api/manage/v1/Subscriptions/{subscriptionId}/users/{userId}
, где вместо{subscriptionId}
следует передать идентификатор подписки, а вместо{userId}
следует передать идентификатор пользователя.Пример запроса.
curl -X DELETE "https://fastreport.cloud/api/manage/v1/Subscriptions/5fa919fa292a8300019349bc/users/5af5a8dc-8cb0-40f9-ac99-ca2533fa4492" -H "accept: text/plain"
В ответ будет получено пустое сообщение с кодом
OK 200
.