民意调查

更新
Cover image for: 民意调查

轮询资源包含有关特定数据请求的信息。创建轮询后,它将触发创建一个或多个任务以完成请求。

属性

名称类型描述
id民意调查 ID资源标识符。
resource字符串,始终poll资源类型说明符。
organisation组织ID与该资源关联的组织。
key钥匙ID与该资源关联的密钥。
user用户身份与该资源关联的用户。
source源ID民意调查所针对的来源。这可以是会话源的子源。
session会话ID民意调查正在使用的会话。
subscription可选订阅 ID关联的订阅对象 ID(如果适用)。
tasks_pending任务 ID 列表与正在等待处理的轮询关联的任务。
tasks_processing任务 ID 列表与正在处理的轮询相关的任务。
tasks_succeeded任务 ID 列表与已成功的轮询关联的任务。
tasks_failed任务 ID 列表与失败的轮询相关的任务。
tasks_suspended任务 ID 列表与暂停的轮询相关的任务。
results包含结果对象的列表对象由轮询任务生成的结果对象列表。
errors包含错误对象的列表对象由轮询任务生成的错误对象列表。
state细绳其中之一: pendingprocessingcompleted
date_created约会时间创建资源的时间。
date_started可选日期时间民意调查何时开始处理。
date_completed可选日期时间民意调查处理完成时。

任务

轮询资源的最重要作用是反映其相关任务的进度,并允许最终用户在这些结果可用后立即开始从中获取结果。因此,轮询资源公开了与任务相关的属性,其中,根据任务的状态对相关任务进行了分类。

结果

轮询中运行的任务发布的任何结果都将显示在轮询的results属性中。这样可以在调查完成之前消耗结果。

错误

在轮询中运行的任务引起的任何错误将显示在轮询的errors属性中。

状态

轮询状态仅反映轮询是等待初始化( pending ),正在进行( processing )还是所有任务已完成执行( completed )。

除了通过其关联任务之外,轮询不会反映任何错误状态。

有效载荷

轮询有效负载指示应检索哪些类型的信息,数据类型和文件。轮询有效载荷属性架构如下所述。

名称类型描述
info_types info_type对象列表指定应检索哪些信息类型。支持通配符*
data_types data_type对象列表指定应检索哪些数据类型。
files file ID 列表。指定要检索的文件。
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备份或重新孵化中继源中检索各种消息传递数据,但仅从特定日期开始:

{
  "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_numbersemail_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参数应为该源的ID。

名称类型描述
key可选,钥匙 ID (可选)覆盖用于此轮询的密钥。当让用户试用新功能时,这非常有用。
source可选,源 ID (可选)以会话链接源的子源为目标。
session会话ID用于验证数据检索的会话。
subscription订阅号用于执行轮询的订阅。如果提供了这一点,则可以省略sourcesession
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钥匙ID按关联键过滤。这是用户当时使用的密钥。
user用户身份按关联用户过滤。
source源ID按目标源过滤。
session会话ID按目标会话过滤。
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_addressesphone_numbers过滤器的支持,允许检索仅与特定联系人相关的数据。

2022-07-08

  • 添加了对轮询有效负载中的until过滤器的支持,以进行 SMS 提取。这补充了since过滤器,允许客户端指定要从中检索数据的确切日期时间范围。

2020-05-05

  • errors属性已添加到轮询对象。这是一个嵌套列表对象,其中包含与轮询相关的错误对象。

2020-02-20

  • Major :轮询对象的results属性现在是嵌套列表对象,而不是简单的列表属性。当民意调查发布大量结果时,可以对结果进行分页。

2019-10-16

  • subscription属性添加到轮询对象,以指示轮询是否由订阅触发。

2019-06-01

  • 轮询对象payload属性现在可以由多种操作类型组成。这意味着可以使用有效负载中的任何或所有info-typesdata-typesfiles来创建轮询。
  • Major不建议使用poll对象的type属性,而建议使用可组合的poll有效负载。

我们能帮你什么吗?

我们的支持团队在这里提供帮助!

我们的办公时间是格林威治标准时间周一至周五上午9点至下午5点。 时间目前是 1:47 PM的 GMT。

我们力争在一个工作日内答复所有垂询。

我们的支持团队非常棒

© 2008 - 2024 Reincubate Ltd. 保留所有权利。 在英格兰和威尔士注册 #5189175, VAT GB151788978. Reincubate®和Camo®是注册商标。 隐私政策 & 条款.