跳到主要内容
Reincubate

Subscriptions

发布于 2019年10月14日· 更新于 2020年5月12日

Cover image for: Subscriptions

A subscription object represents a continuing request for data, such as "retrieve new CallKit calls every 24 hours" or "retrieve the latest iOS messages from a Reincubate Relay source when a new backup is made".

Different services can implement subscriptions in slightly different ways. The iCloud service works on a periodic polling mechanism, whereby it checks for new data every set interval of time. The rirelay service works on a push mechanism, publishing new data as soon as it becomes available.

Attributes

nametypedescription
idstringResource identifier.
resourcestring, always subscriptionResource type identifier.
orgorganisation IDThe subscription's associated organisation.
sourcesource ID
sessionsession ID
poll_payloadnested poll payloadThe payload of polls to be created by the subscription. See poll payload.
intervaloptional timedeltaThe interval between polls, in seconds.
date_startoptional datetimeThe date to start creating polls.
date_endoptional datetimeThe date to stop creating polls.
statestringOne of: pending, active, deleted.
date_createddatetimeWhen the resource was created.

Interval

The interval attribute controls the frequency at which the API will pull in or request new data from a source.

On the iCloud service, which is pull-based, the subscription will create a new poll every interval seconds.

On the Reincubate Relay service, the interval attribute is instead passed through to the Relay app. This configures how often the app will request new data from connected devices, wish then triggers a poll on the API via a push mechanism. No poll is created until the device associated with the subscription's source is connected to the Relay app.

Create POST /subscriptions

nametypedescription
sessionsession IDWhich session to create polls against.
sourceoptional, source IDOptionally target a child source of the session-linked source.
poll_payloadnested poll payloadThe poll payload used to specify poll
intervaloptional timedeltaThe interval between polls, in seconds.
date_startoptional datetimeThe date to start creating polls.
date_endoptional datetimeThe date to stop creating polls.

Using 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"]
  }
}'

Using 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,
)

Retrieve GET /subscriptions/{subscription ID}

Using cURL

curl https://ricloud-api.reincubate.com/subscriptions/<subscription ID> \
  -H 'Authorization: Token <your key_token>'

Using ricloud-py

import ricloud

subscription = ricloud.Subscription.retrieve(<subscription ID>)

List GET /subscriptions

Using cURL

curl https://ricloud-api.reincubate.com/subscriptions \
  -H 'Authorization: Token <your key_token>'

Using ricloud-py

import ricloud

subscriptions = ricloud.Subscription.list()

Update POST /subscriptions/{subscription ID}

A subscription can be updated to change the polls it creates and when it creates them.

Also, in the case a subscription's session expires it can be replaced with a newly created, active session.

nametypedescription
sessionsession IDWhich session to create polls against. Must have the same underlying source as the subscription's original session.
poll_payloadnested poll payloadThe poll payload used to specify poll.
intervaloptional timedeltaThe interval between polls, in seconds.
date_startoptional datetimeThe date to start creating polls.
date_endoptional datetimeThe date to stop creating polls.

Using 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"]
  }
}'

Using 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 DELETE /subscriptions/{subscription ID}

Stop the subscription from creating further polls.

Using cURL

curl https://ricloud-api.reincubate.com/subscriptions/<subscription ID> \
  -X DELETE \
  -H 'Authorization: Token <your key_token>'

Using ricloud-py

import ricloud

subscription = ricloud.Subscription.delete_with_id(<subscription ID>)

# OR

subscription = ricloud.Subscription.retrieve(<subscription ID>)

subscription.delete()

相关文章

需要帮助吗?

我们会尽力在一个工作日内回复所有消息。

support@reincubate.com
King's Award for Enterprise 标志

King's Award for Enterprise:Reincubate 已四次荣获英国最高官方商业荣誉,最近一次是表彰公司过去三年的卓越增长。

我们与用户和合作伙伴的关系是我们价值观和所创造产品的核心。查看 用户评价,听听他们对我们的评价。

通过 Centre for Assessment 的 ISO 27001 认证,获 UKAS 认可

© 2008-2026 Reincubate Ltd. 保留所有权利。在英格兰和威尔士注册,公司编号 5189175,增值税号 GB151788978。Camo®、Streamlight® 和 Reincubate® 是注册商标。专利申请中。

帮助