Les sondages
Une ressource d'interrogation contient des informations sur une demande spécifique de données. Une fois qu'un sondage est créé, il déclenchera la création d'une ou plusieurs tâches afin de compléter la demande.
Les attributs
Nom | taper | la description |
---|---|---|
id | identifiant du sondage | Identificateur de ressource. |
resource | chaîne, toujours poll | Spécificateur de type de ressource. |
organisation | identifiant de l'organisation | Organisation associée à cette ressource. |
key | identifiant de clé | Clé associée à cette ressource. |
user | ID de l'utilisateur | Utilisateur associé à cette ressource. |
source | identifiant de la source | La source ciblée par le sondage. Il peut s'agir d'une source enfant de la source de la session. |
session | ID de session | La session utilisée par le sondage. |
subscription | identifiant d'abonnement facultatif | L'ID de l'objet d'abonnement associé, le cas échéant. |
tasks_pending | liste des ID de tâches | Tâches associées à l'interrogation en attente de traitement. |
tasks_processing | liste des ID de tâches | Tâches associées au sondage en cours de traitement. |
tasks_succeeded | liste des ID de tâches | Les tâches associées au sondage qui ont réussi. |
tasks_failed | liste des ID de tâches | Tâches associées au sondage qui ont échoué. |
tasks_suspended | liste des ID de tâches | Tâches associées au sondage qui sont suspendues. |
results | objet de liste contenant des objets de résultat | Liste des objets de résultat générés par les tâches du sondage. |
errors | liste d'objets contenant des objets d'erreur | Liste des objets d'erreur générés par les tâches du sondage. |
state | chaîne | L'un des éléments suivants : pending , processing , completed . |
date_created | dateheure | Date de création de la ressource. |
date_started | date/heure facultative | Lorsque le traitement du sondage a commencé. |
date_completed | date/heure facultative | Une fois le traitement du sondage terminé. |
Tâches
Le rôle le plus important de la ressource de sondage est de refléter la progression des tâches associées et de permettre à l'utilisateur final de commencer à extraire les résultats de ces tâches dès qu'ils sont disponibles. Par conséquent, la ressource d'interrogation expose les attributs liés aux tâches dans lesquels les tâches associées sont classées en fonction de leur état.
Résultats
Tous les résultats publiés par des tâches exécutées dans le sondage sont indiqués dans l'attribut results
du sondage. Cela permet de consommer les résultats avant la fin du sondage.
les erreurs
Toutes les erreurs soulevées par les tâches exécutées dans le sondage apparaîtront dans l'attribut d' errors
du sondage.
États
L'état d'une interrogation indique uniquement si l'interrogation est en attente d'initialisation (en pending
), en cours de processing
( processing
) ou si toutes les tâches ont été exécutées ( completed
).
Une interrogation ne reflète aucun état d'erreur autre que par ses tâches associées.
Charge utile
La charge utile d'interrogation indique les types d'informations, les types de données et les fichiers à récupérer. Le schéma d'attribut d'interrogation de la charge utile est décrit ci-dessous.
Nom | taper | la description |
---|---|---|
info_types | liste des objets info_type | Spécifie quels types d'informations doivent être récupérés. Prend en charge le caractère générique * . |
data_types | liste des objets data_type | Spécifie quels types de données doivent être récupérés. |
files | liste des identifiants file . | Spécifie les fichiers à récupérer. |
filters | objet filters imbriqués | Spécifie les filtres à appliquer aux données récupérées. |
skip_files |
boolean | If set to true the poll will skip looking up and publishing attachments files, which includes any assets from photos or video feeds. |
Par exemple, le payload d'interrogation permettant de récupérer tous les types d'informations sur une source de compte iCloud serait:
{ "info_types": ["*"] }
Pour récupérer diverses données de messagerie à partir d'une source de sauvegarde iCloud ou Reincubate Relay, mais uniquement à partir d'une date donnée:
{ "data_types": ["ios_messages.messages", "whatsapp.messages", "viber.messages"], "filters": { "since": "2019-09-15T22:04:12Z", "until": "2021-06-02T12:00:00Z" } }
Pour récupérer les données de fichier pour les images référencées dans un résultat iCloud Photo Library:
{ "files": ["icpl://xyz123", "icpl://abc321"] }
Les différents attributs peuvent également être utilisés simultanément:
{ "info_types": ["*"], "data_types": ["ios_phone.calls"] }
Filtres
Les filtres permettent au client de réduire la quantité de données renvoyées uniquement à celles susceptibles de l'intéresser. Par exemple, vous pouvez filtrer un sondage pour les données SMS uniquement sur le dernier mois de données.
nom | taper | description |
---|---|---|
since | date/heure facultative | Filtrez uniquement les données créées après cette date/heure. |
until | date/heure facultative | Filtrer uniquement les données créées avant cette date/heure. |
phone_numbers | tableau facultatif | Filtrez uniquement les données liées aux numéros de téléphone de cette liste. |
email_addresses | tableau facultatif | Filtrez uniquement les données liées aux adresses e-mail de cette liste. |
Filtres dans les charges utiles des sondages d'abonnement
Lorsque vous utilisez des abonnements pour générer des sondages réguliers, tous les filtres définis dans la charge utile du sondage ne seront utilisés que lors du sondage initial de l'abonnement. Par la suite, l'API effectuera les opérations suivantes :
- Toute valeur pour
until
soit ignorée afin d'éviter de simplement réinterroger le même intervalle à plusieurs reprises - Si
until
a été défini, le prochain sondage récupérera les données à partir de ce moment dans le temps. - Si
until
n'a pas été défini, l'interrogation suivante récupérera les données à partir de l'heure de l'interrogation initiale (c'est-à-dire que l'API interrogera progressivement comme d'habitude)
Filtres au niveau des données
Les filtres au niveau des données, tels que phone_numbers
et email_addresses
, sont utiles pour réduire les données traitées aux seuls éléments qui vous concernent. Il s'agit de filtres d'inclusion qui suppriment tous les éléments de données qui ne correspondent pas ou ne sont pas liés à un autre élément correspondant à l'une des valeurs de la liste du filtre. Prenons par exemple la charge utile ci-dessous :
{ "data_types": ["ios_messages.messages"], "filters": { "phone_numbers": ["0123456789"], "email_addresses": ["test@example.com"] } }
Cela renverrait tous les messages des messages iOS liés à une conversation impliquant le numéro de téléphone ou l'adresse e-mail spécifié, y compris les conversations de groupe. Il peut être utile de spécifier plusieurs valeurs sur lesquelles filtrer, car de nombreux contacts auront une combinaison de numéros de téléphone et de comptes identifiés par e-mail, tels que les comptes iCloud de Messages.
Notez que pour les numéros de téléphone, tous les caractères spéciaux sont ignorés lors de la comparaison du filtre, par exemple (415) 555‑0132
est équivalent à 4155550132
, et des sous-chaînes peuvent également être utilisées, par exemple 4155550132
correspondra à (415) 555‑0132
et +1 (415) 555‑0132
. En règle générale, l'utilisation d'une valeur de filtre légèrement moins spécifique (en évitant les indicatifs d'appel internationaux, par exemple) produira des résultats plus cohérents.
Créer un POST /polls
Créez un sondage pour les données d'une session spécifique.
Le paramètre source
ne doit être utilisé que lorsque vous ciblez une source enfant de la source principale de la session. Par exemple, si la récupération de données à partir d'un rirelay.source
le paramètre source
doit être l'ID de cette source.
Nom | taper | la description |
---|---|---|
key | en option, ID de clé | Remplacez éventuellement la clé utilisée pour ce sondage. Ceci est utile pour permettre aux utilisateurs de tester de nouvelles fonctionnalités. |
source | facultatif, ID source | Ciblez éventuellement une source enfant de la source liée à la session. |
session | ID de session | Session à utiliser pour authentifier la récupération de données. |
subscription | identifiant d'abonnement | L'abonnement à utiliser pour effectuer le sondage. Si cela est fourni, source et session peuvent être omises. |
payload | charge utile du sondage imbriqué | La charge utile du sondage utilisée pour spécifier le sondage |
Utiliser cURL
curl https://ricloud-api.reincubate.com/polls \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "session": "<session ID>", "payload": { "info_types": ["*"] } }'
Utiliser ricloud-py
import ricloud poll_payload = { 'info_types': ['*'], } poll = ricloud.Poll.create( session='<session ID or ricloud.Session instance>', payload=poll_payload, )
Exemple de réponse
{ "id": "54554389-5f1a-4ccf-9bb8-024a031cf948", "resource": "poll", "organisation": 1, "key": 1, "user": 1, "source": 1, "session": "f5a7a7ef-ff21-47fe-9aa6-7ebd08123623", "subscription": null, "tasks_pending": [], "tasks_processing": [], "tasks_succeeded": [], "tasks_failed": [], "tasks_suspended": [], "results": { "data": [], "has_more": false, "total_count": 0, "url": "/polls/54554389-5f1a-4ccf-9bb8-024a031cf948/results" }, "errors": { "data": [], "has_more": false, "total_count": 0, "url": "/polls/54554389-5f1a-4ccf-9bb8-024a031cf948/errors" }, "state": "pending", "date_created": "2020-02-20T11:59:14.694337Z", "date_started": null, "date_completed": null }
Récupérer GET /polls/{poll ID}
Utiliser cURL
curl https://ricloud-api.reincubate.com/polls/<poll ID> \ -H 'Authorization: Token <your key_token>'
Utiliser ricloud-py
import ricloud poll = ricloud.Poll.retrieve(<poll ID>)
Liste GET /polls
Nom | taper | la description |
---|---|---|
key | identifiant de clé | Filtrer par clé associée. Il s'agit de la clé utilisée par l'utilisateur à ce moment-là. |
user | ID de l'utilisateur | Filtrer par utilisateur associé. |
source | identifiant de la source | Filtrer par la source cible. |
session | ID de session | Filtrer par session cible. |
subscription | identifiant d'abonnement | Filtrer par l'abonnement associé. |
state | chaîne | Filtrer par état de session. |
date_created | filtre date/heure | Filtrer par date de création de la ressource. |
date_started | filtre date/heure | Filtrer par date de début du sondage. |
date_completed | filtre date/heure | Filtrer par date de fin du sondage. |
Utiliser cURL
curl https://ricloud-api.reincubate.com/polls \ -H 'Authorization: Token <your key_token>'
Utiliser ricloud-py
import ricloud polls = ricloud.Poll.list()
Changelog
2023-11-28
- La prise en charge des filtres
email_addresses
etphone_numbers
a été ajoutée, ce qui permet de récupérer des données relatives uniquement à des contacts spécifiques.
2022-07-08
- La prise en charge du filtre
until
dans les charges utiles de sondage a été ajoutée pour l'extraction de SMS. Cela complète le filtresince
pour permettre aux clients de spécifier une plage date/heure exacte à partir de laquelle récupérer les données.
2020-05-05
- L'attribut d'
errors
été ajouté à l'objet d'interrogation. Il s'agit d'un objet de liste imbriqué contenant des objets d'erreur associés au sondage.
2020-02-20
- Major : l'attribut
results
de l'objet poll est désormais un objet liste imbriqué, plutôt qu'un simple attribut list. Cela permet de paginer les résultats lorsqu'un sondage publie un grand nombre de résultats.
2019-10-16
- Ajoute l'attribut d'
subscription
à l'objet d'interrogation pour indiquer si l'interrogation a été déclenchée par un abonnement.
2019-06-01
- L'attribut de
payload
objet d'interrogation peut désormais être composé de plusieurs types d'opérations. Cela signifie qu'un sondage peut être créé avec tout ou partie desinfo-types
d'info-types
data-types
et desfiles
dans la charge utile. - Majeur L'attribut
type
sur l'objet d'interrogation est déconseillé au profit des charges utiles d'interrogation composables.