民意调查

轮询资源包含有关特定数据请求的信息。创建轮询后,它将触发创建一个或多个任务以完成请求。
属性
名称 | 类型 | 描述 |
---|---|---|
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 | 串 | 其中之一: pending , processing , completed 。 |
date_created | 约会时间 | 资源创建时。 |
date_started | 可选的日期时间 | 当民意调查开始时。 |
date_completed | 可选的日期时间 | 投票处理结束时。 |
任务
轮询资源的最重要作用是反映其相关任务的进度,并允许最终用户在这些结果可用后立即开始从中获取结果。因此,轮询资源公开了与任务相关的属性,其中,根据任务的状态对相关任务进行了分类。
结果
轮询中运行的任务发布的任何结果都将显示在轮询的results
属性中。这样可以在调查完成之前消耗结果。
错误
在轮询中运行的任务引起的任何错误将显示在轮询的errors
属性中。
状态
轮询状态仅反映轮询是等待初始化( pending
),正在进行( processing
)还是所有任务已完成执行( completed
)。
除了通过其关联任务之外,轮询不会反映任何错误状态。
有效载荷
轮询有效负载指示应检索哪些类型的信息,数据类型和文件。轮询有效载荷属性架构如下所述。
名称 | 类型 | 描述 |
---|---|---|
info_types | info_type 对象列表 | 指定应检索的信息类型。支持通配符* 。 |
data_types | data_type 对象列表 | 指定应检索的数据类型。 |
files | file ID列表。 | 指定要检索的文件。 |
filters | 嵌套filters 对象 | 指定要应用于检索到的数据的过滤器。 |
例如,用于检索iCloud帐户源上所有类型的信息的轮询有效载荷将是:
{ "info_types": ["*"] }
要从iCloud备份或重新孵化中继源中检索各种消息传递数据,但仅从特定日期开始:
{ "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
参数应为该源的ID。
名称 | 类型 | 描述 |
---|---|---|
key | 可选的密钥ID | (可选)覆盖用于此轮询的密钥。这在让用户试用新功能时非常有用。 |
source | 可选,源ID | (可选)定位会话链接源的子源。 |
session | 会话ID | 用于验证数据检索的会话。 |
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 | 密钥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()
变更日志
2020-05-05
-
errors
属性已添加到轮询对象。这是一个嵌套列表对象,其中包含与轮询相关的错误对象。
2020-02-20
- Major :轮询对象的
results
属性现在是嵌套列表对象,而不是简单的列表属性。当民意调查发布大量结果时,可以对结果进行分页。
2019-10-16
- 将
subscription
属性添加到轮询对象,以指示轮询是否由订阅触发。
2019-06-01
- 轮询对象
payload
属性现在可以由多种操作类型组成。这意味着可以使用有效负载中的任何或所有info-types
,data-types
和files
来创建轮询。 - Major不建议使用poll对象的
type
属性,而建议使用可组合的poll有效负载。