Saltar al contenido principal

Subscriptions

Publicado el 14 de octubre de 2019· Actualizado el 12 de mayo de 2020

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()

Artículos relacionados

¿Necesitas ayuda?

Intentamos responder a todos los mensajes en un día laborable.

support@reincubate.com
Logotipo del King's Award for Enterprise

King's Award for Enterprise: Reincubate ha ganado cuatro veces el máximo honor empresarial oficial del Reino Unido, la más reciente en reconocimiento al destacado crecimiento de la empresa durante los últimos tres años.

Nuestras relaciones con usuarios y socios son el núcleo de nuestros valores y de los productos que creamos. Consulta nuestras reseñas para saber lo que opinan de nosotros.

Certificación ISO 27001 del Centre for Assessment, acreditada por UKAS

© 2008-2026 Reincubate Ltd. Todos los derechos reservados. Registrada en Inglaterra y Gales con el n.º 5189175, IVA GB151788978. Camo®, Streamlight® y Reincubate® son marcas registradas. Patentes en trámite.

Ayuda