流API
Streaming API提供了对所选数据集的只读访问业务指标.一旦你的应用程序建立了到流端点的连接,事件的提要就会传递到你的应用程序。
基于时间的度量,例如waiting_time_avg
在响应影响度量值的事件而更改度量时,将在提要中交付。这些事件包括访客或座席加入聊天、离开聊天或发送消息、座席转移部门或聊天结束。
使用流式API包括以下步骤:
如果决定停止收集某个指标的数据,可以取消订阅。看到取消订阅一个度量.
允许
- 老板
- 管理员
- 代理
速度限制
每分钟只允许一定数量的到Streaming API的新连接。属性限制了新连接的数量REST API速率限制每分钟200个请求。验证并建立到Streaming API的一个web套接字连接算作每分钟200个请求中的一个请求。例如,在一分钟内,您可以发出190个REST API请求并建立10个新连接,然后才会受到速率限制。
此外,只允许一定数量的并发运行到Streaming API的连接。作为流式API消费者,每个帐户最多可以有1000个并发连接,每个代理最多可以有10个并发连接。
一旦连接打开,您就可以收到无限数量的度量或事件更改。这些不计入任何设定的速率限制。
亚博Zendesk保留对指定端点的速率限制进行调整的权利,以便为所有客户提供高质量的服务。
如果超过帐户或代理速率限制,Zendesk Chat将响应HTTP 429亚博请求太多响应代码和详细说明启动速率限制器原因的正文。
建立连接
要打开连接,请连接到wss: / / rtm.zopim.com/stream
使用API OAuth令牌的WebSocket端点。
下面以Node.js为例ws从服务器端创建到API的WebSocket连接。
varWebSocket=需要(“ws”);
varws_client=新WebSocket(
“wss: / / rtm.zopim.com/stream”,{
头:{
“授权”:“持票人”+{OAuth2访问令牌}
}
}
);
ws_client.在(“开放”,函数(){
控制台.日志(成功连接的);
});
订阅指标
建立连接后,可以使用指定度量键的消息订阅度量。看到聊天指标或代理指标对于度量键。
要订阅聊天指标,请使用以下格式:
{
主题:“聊天{metric_key}”。,
行动:“订阅”
}
要订阅代理指标,请使用以下格式:
{
主题:“代理{metric_key}”。,
行动:“订阅”
}
订阅具有时间窗口的度量
有些聊天指标有一个时间窗口。订阅它们时必须指定窗口大小。看到聊天指标对于带有时间窗口的度量。
请注意:所有代理指标都没有时间窗口。
{
主题:“聊天{metric_key}”。,
行动:“订阅”,
窗口:{window_size_in_minutes}
}
可用的时间窗口为30.
分钟,60
分钟。
订阅一个部门的度量
您可以选择为特定部门订阅指标department_id
在订阅消息中。要列出帐户上的所有部门或按名称获取部门,请使用部门API.
关于聊天指标:
{
主题:“聊天{metric_key}”。,
行动:“订阅”,
department_id:{department_id}
}
对于代理度量:
{
主题:“代理{metric_key}”。,
行动:“订阅”,
department_id:{department_id}
}
处理传入事件
一旦订阅了一个或多个指标,就可以开始从传入事件收集数据。在下面的例子中,WebSocket客户端监听传入的事件。客户端是使用Node.js创建的ws图书馆。看到建立连接.
ws_client.在(“消息”,函数(事件){
控制台.日志('收到来自服务器的消息:'+事件);
var消息=JSON.解析(事件);
如果(消息.status_code= = !200){
控制台.日志(“无效状态码”+消息.status_code);
返回;
}
如果(消息.内容& &消息.内容.类型= =“更新”){
控制台.日志(“收到的度量数据”);
...
}
};
聊天事件示例
以下是在30分钟的时间窗口内订阅几个聊天指标后收到的示例消息。的department_id
当订阅度量时不指定部门时为空。还要注意上提供的30分钟窗口missed_chats
.
{
“内容”:{
“主题”:“聊天”,
“数据”:{
“incoming_chats”:2
},
“类型”:“更新”,
“department_id”:零
},
“status_code”:200
}
{
“内容”:{
“主题”:“聊天”,
“数据”:{
“assigned_chats”:0
},
“类型”:“更新”,
“department_id”:零
},
“status_code”:200
}
{
“内容”:{
“主题”:“聊天”,
“数据”:{
“waiting_time_avg”:12
},
“类型”:“更新”,
“department_id”:零
},
“status_code”:200
}
{
“内容”:{
“主题”:“聊天”,
“数据”:{
“missed_chats”:{
“30”:1
}
},
“类型”:“更新”,
“department_id”:零
},
“status_code”:200
}
代理事件示例
以下是订阅特定代理指标后收到的示例消息department_id
.
{
“内容”:{
“主题”:“代理”,
“数据”:{
“agents_online”:26
},
“类型”:“更新”,
“department_id”:5
},
“status_code”:200
}
{
“内容”:{
“主题”:“代理”,
“数据”:{
“agents_away”:0
},
“类型”:“更新”,
“department_id”:5
},
“status_code”:200
}
{
“内容”:{
“主题”:“代理”,
“数据”:{
“agents_invisible”:1
},
“类型”:“更新”,
“department_id”:5
},
“status_code”:200
}
取消订阅一个度量
一旦您希望停止为某个指标收集数据,您可以取消对该指标的订阅。事件将停止在连接上推送。
{
主题:"{聊天或代理}.{metric_key}",
行动:“退订”
}