Подписки
Объект подписки представляет собой непрерывный запрос данных, такой как «извлекать новые вызовы CallKit каждые 24 часа» или «извлекать последние сообщения iOS из источника Reincubate Relay при создании новой резервной копии».
Различные сервисы могут реализовывать подписки по-разному. Служба iCloud работает по механизму периодического опроса, который проверяет наличие новых данных каждый установленный интервал времени. Служба rirelay работает по механизму push, публикуя новые данные, как только они становятся доступными.
Атрибуты
название | тип | описание |
---|---|---|
id | строка | Идентификатор ресурса. |
resource | строка, всегда subscription | Идентификатор типа ресурса. |
org | идентификатор организации | Связанная организация подписки. |
source | идентификатор источника | |
session | идентификатор сессии | |
poll_payload | полезная нагрузка вложенного опроса | Полезная нагрузка опросов, создаваемых по подписке. Смотрите опрос полезной нагрузки . |
interval | необязательный timedelta | Интервал между опросами, в секундах. |
date_start | необязательная дата и время | Дата начала создания опросов. |
date_end | необязательная дата и время | Дата прекращения создания опросов. |
state | строка | Один из: pending , active , deleted . |
date_created | Дата и время | Когда ресурс был создан. |
интервал
Атрибут interval
контролирует частоту, с которой API будет извлекать или запрашивать новые данные из источника.
В службе iCloud, которая основана на получении, подписка будет создавать новый опрос каждые interval
секунд.
В службе Reincubate Relay атрибут interval
вместо этого передается в приложение Relay. Это определяет, как часто приложение будет запрашивать новые данные у подключенных устройств, а затем инициирует опрос API через механизм push-уведомлений. Опрос не создается, пока устройство, связанное с источником подписки, не будет подключено к приложению Relay.
Создать POST /subscriptions
название | тип | описание |
---|---|---|
session | идентификатор сессии | Какой сеанс создавать опросы против. |
source | необязательно, идентификатор источника | При желании можно указать дочерний источник источника, связанного с сеансом. |
poll_payload | полезная нагрузка вложенного опроса | Полезная нагрузка опроса, используемая для определения опроса |
interval | необязательный timedelta | Интервал между опросами, в секундах. |
date_start | необязательная дата и время | Дата начала создания опросов. |
date_end | необязательная дата и время | Дата прекращения создания опросов. |
Использование cURL
curl https://ricloud-api.reincubate.com/subscriptions \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "session": "<session ID>", "source": "<source ID>", "poll_payload": { "data_types": ["ios_messages.messages", "whatsapp.messages"] } }'
Использование ricloud-py
import ricloud poll_payload = { "data_types": ["ios_messages.messages", "whatsapp.messages"], } subscription = ricloud.Subscription.create( session="<session ID or ricloud.Session instance>", source="<source ID or ricloud.Source instance>", poll_payload=poll_payload, )
Получить GET /subscriptions/{subscription ID}
Использование cURL
curl https://ricloud-api.reincubate.com/subscriptions/<subscription ID> \ -H 'Authorization: Token <your key_token>'
Использование ricloud-py
import ricloud subscription = ricloud.Subscription.retrieve(<subscription ID>)
Список GET /subscriptions
Использование cURL
curl https://ricloud-api.reincubate.com/subscriptions \ -H 'Authorization: Token <your key_token>'
Использование ricloud-py
import ricloud subscriptions = ricloud.Subscription.list()
Обновить POST /subscriptions/{subscription ID}
Подписку можно обновить, чтобы изменить создаваемые ею опросы и когда они создаются.
Кроме того, в случае истечения сеанса подписки его можно заменить вновь созданным активным сеансом.
название | тип | описание |
---|---|---|
session | идентификатор сессии | Какой сеанс для создания опросов против. Должен иметь тот же источник, что и исходный сеанс подписки. |
poll_payload | полезная нагрузка вложенного опроса | Полезная нагрузка опроса, используемая для определения опроса. |
interval | необязательный timedelta | Интервал между опросами, в секундах. |
date_start | необязательная дата и время | Дата начала создания опросов. |
date_end | необязательная дата и время | Дата прекращения создания опросов. |
Использование cURL
curl https://ricloud-api.reincubate.com/subscriptions/<subscription ID> \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "session": "<session ID>", "poll_payload": { "data_types": ["icpl.photos"] } }'
Использование ricloud-py
import ricloud poll_payload = { "data_types": ["icpl.photos"], } subscription = ricloud.Subscription.update( session="<session ID or ricloud.Session instance>", poll_payload=poll_payload, )
Удалить DELETE /subscriptions/{subscription ID}
Остановите подписку от создания дальнейших опросов.
Использование cURL
curl https://ricloud-api.reincubate.com/subscriptions/<subscription ID> \ -X DELETE \ -H 'Authorization: Token <your key_token>'
Использование ricloud-py
import ricloud subscription = ricloud.Subscription.delete_with_id(<subscription ID>) # OR subscription = ricloud.Subscription.retrieve(<subscription ID>) subscription.delete()