Опросы

Ресурс опроса содержит информацию о конкретном запросе данных. После создания опроса он инициирует создание одной или нескольких задач для выполнения запроса.
Атрибуты
название | тип | описание |
---|---|---|
id | ID опроса | Идентификатор ресурса. |
resource | строка, всегда poll | Спецификатор типа ресурса. |
organisation | идентификатор организации | Организация, связанная с этим ресурсом. |
key | идентификатор ключа | Ключ, связанный с этим ресурсом. |
user | Идентификатор пользователя | Пользователь, связанный с этим ресурсом. |
source | идентификатор источника | Источник, на который нацелен опрос. Это может быть дочерним источником источника сеанса. |
session | идентификатор сессии | Сессия, которую использует опрос. |
subscription | необязательный идентификатор подписки | Идентификатор связанного объекта подписки, если применимо. |
tasks_pending | список идентификаторов задач | Задачи, связанные с опросом, ожидающие обработки. |
tasks_processing | список идентификаторов задач | Задачи, связанные с опросом, которые обрабатываются. |
tasks_succeeded | список идентификаторов задач | Задачи, связанные с опросом, которые прошли успешно. |
tasks_failed | список идентификаторов задач | Задачи, связанные с опросом, потерпели неудачу. |
tasks_suspended | список идентификаторов задач | Задачи, связанные с опросом, приостановлены. |
results | список объектов, содержащих объекты результатов | Список объектов результатов, сгенерированных задачами опроса. |
errors | список объектов, содержащих объекты ошибок | Список объектов ошибок, сгенерированных задачами опроса. |
state | строка | Один из: в pending , processing completed . |
date_created | Дата и время | Когда ресурс был создан. |
date_started | необязательная дата и время | Когда началась обработка опроса. |
date_completed | необязательная дата и время | Когда обработка опроса закончена. |
Задачи
Самая важная роль ресурса опроса состоит в том, чтобы отразить ход выполнения связанных с ним задач и позволить конечному пользователю начать получать результаты из них, как только они станут доступны. Поэтому ресурс опроса предоставляет атрибуты, связанные с задачей, в которых связанные задачи классифицируются по их состоянию.
Результаты
Все результаты, опубликованные задачами, запущенными в опросе, отображаются в атрибуте results
опроса. Это позволяет использовать результаты до завершения опроса.
ошибки
Любые ошибки, вызванные задачами, запущенными в опросе, появятся в атрибуте errors
опроса.
состояния
Состояние опроса отражает только то, ожидает ли инициализация ( pending
), находится в процессе ( processing
) или все задачи завершены ( completed
).
Опрос не отражает никаких состояний ошибок, кроме как через связанные с ним задачи.
полезная нагрузка
Полезная нагрузка опроса указывает, какие типы информации, типы данных и файлы должны работать для извлечения. Схема атрибута полезной нагрузки опроса описана ниже.
название | тип | описание |
---|---|---|
info_types | список объектов типа info_type | Определяет, какие типы информации должны быть получены. Поддерживает подстановочный знак * . |
data_types | список объектов data_type | Указывает, какие типы данных должны быть получены. |
files | список идентификаторов file . | Указывает, какие файлы получить. |
filters | объект вложенных filters | Указывает, какие фильтры применять к полученным данным. |
Например, полезная нагрузка опроса для извлечения всех типов информации из источника учетной записи iCloud будет выглядеть так:
{ "info_types": ["*"] }
Чтобы получить различные данные для обмена сообщениями из резервной копии iCloud или источника Reincubate Relay, но только с определенной даты:
{ "data_types": ["ios_messages.messages", "whatsapp.messages", "viber.messages"], "filters": { "since": "2019-09-15T22:04:12Z" } }
Чтобы получить данные файла для изображений, на которые есть ссылки в библиотеке фотографий iCloud:
{ "files": ["icpl://xyz123", "icpl://abc321"] }
Различные атрибуты также могут использоваться одновременно:
{ "info_types": ["*"], "data_types": ["ios_phone.calls"] }
Создать POST /polls
Создайте опрос для данных против определенного сеанса.
Параметр source
следует использовать только при нацеливании на дочерний источник первичного источника сеанса. Например, при получении данных из rirelay.source
параметр source
должен быть идентификатором этого источника.
название | тип | описание |
---|---|---|
key | необязательно, идентификатор ключа | При желании переопределите ключ, используемый для этого опроса. Это полезно, когда пользователи могут опробовать новые функции. |
source | необязательно, идентификатор источника | При желании можно указать дочерний источник источника, связанного с сеансом. |
session | идентификатор сессии | Сессия, которая будет использоваться для аутентификации поиска данных. |
subscription | идентификатор подписки | Подписка для использования в опросе. Если это предусмотрено, source и session могут быть опущены. |
payload | полезная нагрузка вложенного опроса | Полезная нагрузка опроса, используемая для определения опроса |
Использование 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": ["*"] } }'
Использование ricloud-py
import ricloud poll_payload = { 'info_types': ['*'], } poll = ricloud.Poll.create( session='<session ID or ricloud.Session instance>', payload=poll_payload, )
Образец ответа
{ "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 }
Получить GET /polls/{poll ID}
Использование cURL
curl https://ricloud-api.reincubate.com/polls/<poll ID> \ -H 'Authorization: Token <your key_token>'
Использование ricloud-py
import ricloud poll = ricloud.Poll.retrieve(<poll ID>)
Список GET /polls
название | тип | описание |
---|---|---|
key | идентификатор ключа | Фильтр по связанному ключу. Это ключ, используемый пользователем в то время. |
user | Идентификатор пользователя | Фильтровать по связанному пользователю. |
source | идентификатор источника | Фильтр по целевому источнику. |
session | идентификатор сессии | Фильтр по целевой сессии. |
subscription | идентификатор подписки | Фильтр по связанной подписке. |
state | строка | Фильтр по состоянию сеанса. |
date_created | фильтр даты и времени | Фильтровать по тому, когда ресурс был создан. |
date_started | фильтр даты и времени | Фильтровать по, когда опрос начался. |
date_completed | фильтр даты и времени | Фильтровать по окончании опроса. |
Использование cURL
curl https://ricloud-api.reincubate.com/polls \ -H 'Authorization: Token <your key_token>'
Использование ricloud-py
import ricloud polls = ricloud.Poll.list()
Изменения
2020-05-05
- Атрибут
errors
был добавлен в объект опроса. Это объект вложенного списка, содержащий объекты ошибок, связанные с опросом.
2020-02-20
- Важнейший : атрибут
results
объекта опроса теперь является вложенным списком, а не простым списком. Это позволяет разбивать результаты на страницы, когда опрос публикует большое количество результатов.
2019-10-16
- Добавляет атрибут
subscription
в объект опроса, чтобы указать, был ли опрос инициирован подпиской.
2019-06-01
- Атрибут
payload
объекта опроса теперь может состоять из нескольких типов операций. Это означает, что опрос может быть создан с любым или всемиinfo-types
data-types
иfiles
в полезной нагрузке. - Major Атрибут
type
в объекте poll устарел в пользу составных полезных нагрузок опроса.