介绍

在第三方技能中,您可以连接到自己已有的服务或其他系统,以将自定义的富回复发送给终端用户。

第三方技能都可以启用回答服务。默认情况下,回答服务处于禁用状态。当回答服务启用时,请求以及一些其他信息将被发送到您填写的回答服务 API 地址。

下图显示了第三方技能回答服务的简要处理流程:

FLow

如何使用

首先,如果您还没有技能,通过机器人内部或我的技能来创建一个新的对话技能。

Create skill

下一步,进入技能。从左侧的“回答服务”面板来启用回答服务。点击滑动按钮打开它,并填入您的回答服务 API 服务地址。

Entity

使用回答服务时,我们平台将向您的服务 Url 发送 HTTP GET 请求。该 GET 请求的会带上用户的问题。

示例:

假设您填的 api url 是 http://my.domain.com/services/endpoint?q=

当用户说你好时,平台将发起如下请求

http://my.domain.com/services/endpoint?q=你好

您的服务应该基于查询作出行动并返回动态响应。您的服务可以访问其他第三方查询 API,并将其返回给终端用户。您也可以增加自定义返回内容,如图片、视频、卡片等。

您的服务的返回格式须符合 DialogAnswer 格式,示例如下。有关我们支持的完整响应类型集(包括图片、视频、音频、卡片、快速回复等),请参阅我们的富回复文档

{
"stage":[
{
"text":{
"text":[
"您好,有什么可以帮您?"
]
}
},
{
"image": {
"title": "Image Title",
"url": "http://www.example.org/Costco-Waterloo-Ontario-Gas-Station.jpg",
"alt": "Some image."
}
}
]
}

高级功能

错误处理

为了表明已发生错误,请在输出/回调中添加状态、错误信息和异常字段。

字段名称类型是否必要描述
statusString如果值为“failed”,表明当前操作失败。
errorMsgString发送回终端用户的错误信息。
errorMsgFullString完整的错误消息。在调试信息中可用,用于常规调试。

下面是一个示例:

{
"status":"failed",
"errorMsg":"java.lang.NullPointerException.",
"errorMsgFull":"Exception in thread main java.lang.NullPointerException at Entity.<init>(Entity.java:24) at Main.<init>(Main.java:22) at Main.main(Main.java:18)"
}