Sottoscrizioni
Un oggetto in abbonamento rappresenta una richiesta continua di dati, ad esempio "recupera nuove chiamate CallKit ogni 24 ore" o "recupera gli ultimi messaggi iOS da una sorgente Reincubate Relay quando viene effettuato un nuovo backup".
Servizi diversi possono implementare abbonamenti in modi leggermente diversi. Il servizio iCloud funziona su un meccanismo di polling periodico, per cui controlla la presenza di nuovi dati ogni intervallo di tempo impostato. Il servizio di rirelay funziona su un meccanismo push, pubblicando nuovi dati non appena diventano disponibili.
attributi
nome | genere | descrizione |
---|---|---|
id | stringa | Identificatore di risorse |
resource | stringa, sempre in subscription | Identificatore del tipo di risorsa. |
org | ID organizzazione | Organizzazione associata all'abbonamento. |
source | ID sorgente | |
session | ID sessione | |
poll_payload | payload del sondaggio nidificato | Il payload dei sondaggi che deve essere creato dall'abbonamento. Vedi payload del sondaggio . |
interval | timedelta opzionale | L'intervallo tra i sondaggi, in secondi. |
date_start | datetime opzionale | La data di inizio della creazione dei sondaggi. |
date_end | datetime opzionale | La data per interrompere la creazione di sondaggi. |
state | corda | Uno di: in pending , active , deleted . |
date_created | appuntamento | Quando la risorsa è stata creata. |
Intervallo
L'attributo interval
controlla la frequenza con cui l'API inserirà o richiederà nuovi dati da un'origine.
Sul servizio iCloud, basato su pull, l'abbonamento creerà un nuovo sondaggio ogni interval
secondi.
Nel servizio Reincubate Relay, l'attributo interval
viene invece passato all'app Relay. Questo configura la frequenza con cui l'app richiederà nuovi dati dai dispositivi collegati, desidera quindi innesca un sondaggio sull'API tramite un meccanismo push. Nessun sondaggio viene creato fino a quando il dispositivo associato all'origine dell'abbonamento non viene collegato all'app Relay.
Crea POST /subscriptions
nome | genere | descrizione |
---|---|---|
session | ID sessione | Contro quale sessione creare sondaggi. |
source | opzionale, ID sorgente | Facoltativamente, scegliere come destinazione un'origine figlio dell'origine collegata alla sessione. |
poll_payload | payload del sondaggio nidificato | Il payload del sondaggio utilizzato per specificare il sondaggio |
interval | timedelta opzionale | L'intervallo tra i sondaggi, in secondi. |
date_start | datetime opzionale | La data di inizio della creazione dei sondaggi. |
date_end | datetime opzionale | La data per interrompere la creazione di sondaggi. |
Utilizzando 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"] } }'
Usando 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, )
Recupera GET /subscriptions/{subscription ID}
Utilizzando cURL
curl https://ricloud-api.reincubate.com/subscriptions/<subscription ID> \ -H 'Authorization: Token <your key_token>'
Usando ricloud-py
import ricloud subscription = ricloud.Subscription.retrieve(<subscription ID>)
Elenca GET /subscriptions
Utilizzando cURL
curl https://ricloud-api.reincubate.com/subscriptions \ -H 'Authorization: Token <your key_token>'
Usando ricloud-py
import ricloud subscriptions = ricloud.Subscription.list()
Aggiorna POST /subscriptions/{subscription ID}
Un abbonamento può essere aggiornato per modificare i sondaggi che crea e quando li crea.
Inoltre, nel caso in cui una sessione di abbonamento scada, può essere sostituita con una sessione attiva appena creata.
nome | genere | descrizione |
---|---|---|
session | ID sessione | Contro quale sessione creare sondaggi. Deve avere la stessa fonte sottostante della sessione originale dell'abbonamento. |
poll_payload | payload del sondaggio nidificato | Il payload del sondaggio utilizzato per specificare il sondaggio. |
interval | timedelta opzionale | L'intervallo tra i sondaggi, in secondi. |
date_start | datetime opzionale | La data di inizio della creazione dei sondaggi. |
date_end | datetime opzionale | La data per interrompere la creazione di sondaggi. |
Utilizzando 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"] } }'
Usando 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, )
Elimina DELETE /subscriptions/{subscription ID}
Impedisci alla sottoscrizione di creare ulteriori sondaggi.
Utilizzando cURL
curl https://ricloud-api.reincubate.com/subscriptions/<subscription ID> \ -X DELETE \ -H 'Authorization: Token <your key_token>'
Usando ricloud-py
import ricloud subscription = ricloud.Subscription.delete_with_id(<subscription ID>) # OR subscription = ricloud.Subscription.retrieve(<subscription ID>) subscription.delete()