Aller au contenu principal

Subscriptions

Publié le 14 octobre 2019· Mis à jour le 12 mai 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()

Articles liés

Besoin d'aide ?

Nous nous efforçons de répondre à tous les messages sous un jour ouvré.

support@reincubate.com
Logo du King's Award for Enterprise

King's Award for Enterprise : Reincubate a remporté quatre fois la plus haute distinction officielle des entreprises du Royaume-Uni, la plus récente en reconnaissance de la croissance exceptionnelle de l'entreprise au cours des trois dernières années.

Nos relations avec les utilisateurs et les partenaires sont au cœur de nos valeurs et des produits que nous créons. Consultez nos avis pour découvrir ce qu’ils disent de nous.

Certifié ISO 27001 par le Centre for Assessment, accrédité par l'UKAS

© 2008-2026 Reincubate Ltd. Tous droits réservés. Immatriculée en Angleterre et au pays de Galles sous le n° 5189175, TVA GB151788978. Camo®, Streamlight® et Reincubate® sont des marques déposées. Brevets en instance.

Aide