Опросы

обновленный
Cover image for: Опросы

Ресурс опроса содержит информацию о конкретном запросе данных. После создания опроса он инициирует создание одной или нескольких задач для выполнения запроса.

Атрибуты

название тип описание
id идентификатор опроса Идентификатор ресурса.
resource строка, всегда poll Спецификатор типа ресурса.
organisation идентификатор организации Организация, связанная с этим ресурсом.
key идентификатор ключа Ключ, связанный с этим ресурсом.
user ID пользователя Пользователь, связанный с этим ресурсом.
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 Указывает, какие фильтры следует применять к полученным данным.
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.

Например, полезная нагрузка опроса для извлечения всех типов информации из источника учетной записи iCloud будет выглядеть так:

{
  "info_types": ["*"]
}

Чтобы получить различные данные для обмена сообщениями из резервной копии iCloud или источника Reincubate Relay, но только с определенной даты:

{
  "data_types": ["ios_messages.messages", "whatsapp.messages", "viber.messages"],
  "filters": {
    "since": "2019-09-15T22:04:12Z",
    "until": "2021-06-02T12:00:00Z"
  }
}

Чтобы получить данные файла для изображений, на которые есть ссылки в библиотеке фотографий iCloud:

{
  "files": ["icpl://xyz123", "icpl://abc321"]
}

Различные атрибуты также могут использоваться одновременно:

{
  "info_types": ["*"],
  "data_types": ["ios_phone.calls"]
}

Фильтры

Фильтры позволяют клиенту сократить объем возвращаемых данных до тех, которые могут представлять интерес. Например, вы можете отфильтровать опрос по данным SMS, указав только данные за последний месяц.

имя тип описание
since необязательная дата и время Отфильтруйте только данные, созданные после этой даты и времени.
until необязательная дата и время Фильтруйте только данные, созданные до этой даты и времени.
phone_numbers необязательный массив Отфильтруйте только данные, относящиеся к номерам телефонов в этом списке.
email_addresses необязательный массив Отфильтруйте только данные, относящиеся к адресам электронной почты в этом списке.

Фильтры в полезных данных опроса подписки

При использовании подписок для создания регулярных опросов любые фильтры, установленные в полезных данных опроса, будут использоваться только при начальном опросе подписки. После этого API выполнит следующие действия:

  • Любое значение until игнорируется, чтобы избежать простого повторного опроса одного и того же интервала.
  • Если until не установлен, следующий опрос будет извлекать данные с этого момента времени вперед.
  • Если until не установлен, следующий опрос будет извлекать данные с момента первоначального опроса вперед (т. е. API будет опрашивать постепенно, как обычно).

Фильтры уровня данных

Фильтры уровня данных, такие как phone_numbers и email_addresses , помогают сократить количество обработанных данных до тех элементов, которые имеют для вас отношение. Это фильтры включения, которые удаляют любые элементы данных, которые не совпадают или не относятся к другому элементу, который соответствует одному из значений в списке фильтра. Возьмем, к примеру, полезную нагрузку ниже:

{
  "data_types": ["ios_messages.messages"],
  "filters": {
    "phone_numbers": ["0123456789"],
    "email_addresses": ["test@example.com"]
  }
}

Это вернет все сообщения из сообщений iOS, которые относятся к разговору, включающему указанный номер телефона или адрес электронной почты, включая любые групповые разговоры. Может быть полезно указать несколько значений для фильтрации, поскольку многие контакты будут иметь сочетание номеров телефонов и учетных записей, идентифицируемых по электронной почте, например учетные записи iCloud в Сообщениях.

Обратите внимание, что для телефонных номеров любые специальные символы игнорируются при сравнении фильтров, например (415) 555‑0132 эквивалентно 4155550132 , а также могут использоваться подстроки, например 4155550132 будет соответствовать (415) 555‑0132 и +1 (415) 555‑0132 . Обычно использование менее конкретного значения фильтра (например, избегая международных телефонных кодов) дает более стабильные результаты.

Создать 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 ID пользователя Фильтровать по связанному пользователю.
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()

Изменения

2023-11-28

  • Добавлена поддержка фильтров email_addresses и phone_numbers , что позволяет получать данные, относящиеся только к конкретным контактам.

2022-07-08

  • Для извлечения SMS была добавлена поддержка фильтра until в полезных нагрузках опроса. Это дополняет фильтр since , позволяющий клиентам указывать точный диапазон дат и времени для получения данных.

2020-05-05

  • Атрибут errors был добавлен в объект опроса. Это объект вложенного списка, содержащий объекты ошибок, связанные с опросом.

2020-02-20

  • Важнейший : атрибут results объекта опроса теперь является вложенным списком, а не простым списком. Это позволяет разбивать результаты на страницы, когда опрос публикует большое количество результатов.

2019-10-16

  • Добавляет атрибут subscription в объект опроса, чтобы указать, был ли опрос инициирован подпиской.

2019-06-01

  • Атрибут payload объекта опроса теперь может состоять из нескольких типов операций. Это означает, что опрос может быть создан с любым или всеми info-types data-types и files в полезной нагрузке.
  • Major Атрибут type в объекте poll устарел в пользу составных полезных нагрузок опроса.

Как мы можем помочь?

Наша служба поддержки здесь, чтобы помочь!

Наш офис работает с понедельника по пятницу с 9:00 до 17:00 по Гринвичу. Время в настоящее время 2:05 ДП с GMT.

Мы стремимся отвечать на все сообщения в течение одного рабочего дня.

Наша отличная команда поддержки

© 2008 - 2024 Reincubate Ltd. Все права защищены. Зарегистрировано в Англии и Уэльсе #5189175, VAT GB151788978. Reincubate® и Camo® являются зарегистрированными товарными знаками. Политика конфиденциальности & условия.