Pesquisas
Um recurso de pesquisa contém informações sobre uma solicitação específica de dados. Depois que uma pesquisa é criada, ela acionará a criação de uma ou mais tarefas para concluir a solicitação.
Atributos
nome | modelo | Descrição |
---|---|---|
id | ID da enquete | Identificador de recursos. |
resource | string, sempre poll | Especificador de tipo de recurso. |
organisation | ID da organização | A organização associada a este recurso. |
key | ID da chave | A chave associada a este recurso. |
user | ID do usuário | O usuário associado a este recurso. |
source | ID de origem | A fonte que a enquete tem como alvo. Esta pode ser uma fonte filha da origem da sessão. |
session | identificação de sessão | A sessão que a enquete está usando. |
subscription | ID de assinatura opcional | O ID do objeto de assinatura associado, se aplicável. |
tasks_pending | lista de IDs de tarefas | As tarefas associadas à sondagem que estão aguardando processamento. |
tasks_processing | lista de IDs de tarefas | As tarefas associadas à sondagem que estão sendo processadas. |
tasks_succeeded | lista de IDs de tarefas | As tarefas associadas à enquete que foram bem-sucedidas. |
tasks_failed | lista de IDs de tarefas | As tarefas associadas à sondagem que falharam. |
tasks_suspended | lista de IDs de tarefas | As tarefas associadas à sondagem que estão suspensas. |
results | objeto de lista contendo objetos de resultado | Lista de objetos de resultado gerados pelas tarefas da enquete. |
errors | objeto de lista contendo objetos de erro | Lista de objetos de erro gerados pelas tarefas da enquete. |
state | corda | Um dos seguintes: pending , processing , completed . |
date_created | data hora | Quando o recurso foi criado. |
date_started | data e hora opcional | Quando o processamento da enquete começou. |
date_completed | data e hora opcional | Quando o processamento da enquete for concluído. |
Tarefas
O papel mais importante do recurso de pesquisa é refletir o progresso de suas tarefas associadas e permitir que o usuário final comece a buscar resultados a partir deles assim que estiverem disponíveis. Portanto, o recurso de pesquisa expõe atributos relacionados à tarefa em que as tarefas associadas são categorizadas por seu estado.
Resultados
Quaisquer resultados publicados por tarefas executadas na enquete são apresentados no atributo de results
da enquete. Isso permite o consumo de resultados antes que a pesquisa seja concluída.
Erros
Quaisquer erros gerados por tarefas em execução na enquete aparecerão no atributo de errors
da enquete.
Estados
O estado de uma pesquisa reflete apenas se a pesquisa está aguardando a inicialização ( pending
), está em andamento ( processing
) ou se todas as tarefas terminaram a execução ( completed
).
Uma enquete não reflete nenhum estado de erro além das tarefas associadas.
Carga útil
A carga útil da pesquisa indica quais tipos de informações, tipos de dados e arquivos devem ser recuperados. O esquema do atributo de carga útil da pesquisa é descrito abaixo.
nome | modelo | Descrição |
---|---|---|
info_types | lista de objetos info_type | Especifica quais tipos de informações devem ser recuperados. Suporta curinga * . |
data_types | lista de objetos data_type | Especifica quais tipos de dados devem ser recuperados. |
files | lista de IDs file . | Especifica quais arquivos serão recuperados. |
filters | objeto filters aninhados | Especifica quais filtros serão aplicados aos dados recuperados. |
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. |
Por exemplo, a carga útil da pesquisa para recuperar todos os tipos de informações em uma fonte de conta do iCloud seria:
{ "info_types": ["*"] }
Para recuperar uma variedade de dados de mensagens de uma fonte de backup ou Reincubate Relay do iCloud, mas apenas a partir de uma certa data:
{ "data_types": ["ios_messages.messages", "whatsapp.messages", "viber.messages"], "filters": { "since": "2019-09-15T22:04:12Z", "until": "2021-06-02T12:00:00Z" } }
Para recuperar dados de arquivo para imagens referenciadas em um resultado da Biblioteca de Fotos do iCloud:
{ "files": ["icpl://xyz123", "icpl://abc321"] }
Os diferentes atributos também podem ser usados simultaneamente:
{ "info_types": ["*"], "data_types": ["ios_phone.calls"] }
Filtros
Os filtros permitem que o cliente reduza a quantidade de dados retornados apenas para aqueles que provavelmente serão de interesse. Por exemplo, você pode filtrar uma pesquisa de dados de SMS apenas para o último mês de dados.
nome | tipo | descrição |
---|---|---|
since | data e hora opcional | Filtre apenas os dados que foram criados após esta data e hora. |
until | data e hora opcional | Filtre apenas os dados que foram criados antes desta data e hora. |
phone_numbers | matriz opcional | Filtre apenas os dados relacionados aos números de telefone nesta lista. |
email_addresses | matriz opcional | Filtre apenas os dados relacionados aos endereços de email nesta lista. |
Filtros em cargas de pesquisa de assinatura
Ao utilizar subscrições para gerar sondagens regulares, quaisquer filtros definidos na carga útil da sondagem só serão utilizados na sondagem inicial da subscrição. Depois disso, a API fará o seguinte:
- Qualquer valor para
until
é ignorado para evitar simplesmente pesquisar novamente o mesmo intervalo repetidamente - Se
until
foi definido, a próxima pesquisa irá buscar dados daquele momento em diante - Se
until
não tiver sido definido, a próxima pesquisa buscará dados a partir do momento da pesquisa inicial (ou seja, a API pesquisará progressivamente normalmente)
Filtros em nível de dados
Filtros em nível de dados, como phone_numbers
e email_addresses
, são úteis para reduzir os dados processados apenas aos itens que são relevantes para você. Eles incluem filtros que descartam quaisquer itens de dados que não correspondam ou não estejam relacionados a outro item que corresponda a um dos valores na lista do filtro. Veja a carga útil abaixo, por exemplo:
{ "data_types": ["ios_messages.messages"], "filters": { "phone_numbers": ["0123456789"], "email_addresses": ["test@example.com"] } }
Isso retornaria todas as mensagens do Mensagens do iOS relacionadas a uma conversa envolvendo o número de telefone ou endereço de e-mail especificado, incluindo quaisquer conversas em grupo. Pode ser útil especificar vários valores para filtrar, pois muitos contatos terão uma mistura de números de telefone e contas identificadas por e-mail, como as contas iCloud do Mensagens.
Observe que para números de telefone, quaisquer caracteres especiais são ignorados quando a comparação do filtro é feita, por exemplo, (415) 555‑0132
é equivalente a 4155550132
, e substrings também podem ser usadas, por exemplo, 4155550132
corresponderá a (415) 555‑0132
e +1 (415) 555‑0132
. Normalmente, usar um valor de filtro um pouco menos específico – evitando códigos de chamadas internacionais, por exemplo – produzirá resultados mais consistentes.
Criar POST /polls
Crie uma pesquisa de dados em uma sessão específica.
O parâmetro source
deve ser usado apenas ao direcionar uma fonte filha da fonte primária da sessão. Por exemplo, se recuperar dados de um rirelay.source
o parâmetro source
deve ser o ID dessa fonte.
nome | modelo | Descrição |
---|---|---|
key | opcional, ID da chave | Opcionalmente, substitua a chave usada para esta enquete. Isso é útil ao permitir que os usuários testem novas funcionalidades. |
source | opcional, ID de origem | Opcionalmente, direcione uma origem filha da origem vinculada à sessão. |
session | identificação de sessão | A sessão a ser usada para autenticar a recuperação de dados. |
subscription | ID de Inscrição | A assinatura a ser usada para realizar a pesquisa. Se isso for fornecido, source e session poderão ser omitidas. |
payload | carga útil da pesquisa aninhada | A carga útil da pesquisa usada para especificar a pesquisa |
Usando 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": ["*"] } }'
Usando ricloud-py
import ricloud poll_payload = { 'info_types': ['*'], } poll = ricloud.Poll.create( session='<session ID or ricloud.Session instance>', payload=poll_payload, )
Resposta da amostra
{ "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 }
Recuperar GET /polls/{poll ID}
Usando cURL
curl https://ricloud-api.reincubate.com/polls/<poll ID> \ -H 'Authorization: Token <your key_token>'
Usando ricloud-py
import ricloud poll = ricloud.Poll.retrieve(<poll ID>)
Listar GET /polls
nome | modelo | Descrição |
---|---|---|
key | ID da chave | Filtre por chave associada. Esta é a chave usada pelo usuário no momento. |
user | ID do usuário | Filtrar por usuário associado. |
source | ID de origem | Filtre pela origem de destino. |
session | identificação de sessão | Filtre pela sessão de destino. |
subscription | ID de Inscrição | Filtre pela assinatura associada. |
state | corda | Filtre por estado da sessão. |
date_created | filtro de data e hora | Filtre por quando o recurso foi criado. |
date_started | filtro de data e hora | Filtre por quando a enquete começou. |
date_completed | filtro de data e hora | Filtre por quando a enquete foi concluída. |
Usando cURL
curl https://ricloud-api.reincubate.com/polls \ -H 'Authorization: Token <your key_token>'
Usando ricloud-py
import ricloud polls = ricloud.Poll.list()
Changelog
2023-11-28
- Foi adicionado suporte para os filtros
email_addresses
ephone_numbers
, o que permite a recuperação de dados relativos apenas a contatos específicos.
08/07/2022
- Suporte para o filtro
until
em cargas de pesquisa foi adicionado para extração de SMS. Isso complementa o filtrosince
para permitir que os clientes especifiquem um intervalo de data e hora exato do qual recuperar dados.
05/05 2020
- O atributo de
errors
foi adicionado ao objeto de pesquisa. Este é um objeto de lista aninhada que contém objetos de erro associados à pesquisa.
2020-02-20
- Principal : O atributo de
results
do objeto de pesquisa agora é um objeto de lista aninhada, em vez de um simples atributo de lista. Isso possibilita a paginação dos resultados quando uma pesquisa publica um grande número de resultados.
2019-10-16
- Adiciona o atributo de
subscription
ao objeto de pesquisa para indicar se a pesquisa foi acionada por uma assinatura.
01/06/2019
- O atributo de
payload
objeto de pesquisa agora pode ser composto de vários tipos de operação. Isso significa que uma pesquisa pode ser criada com qualquer um ou todosinfo-types
deinfo-types
data-types
efiles
na carga útil. - Principal O atributo
type
no objeto de pesquisa foi preterido em favor de cargas úteis de pesquisa composíveis.