# 技能回复格式

在你处理完iFLYOS发送的请求后,你需要给用户发送回复。回复可以是:

  • 技能请求处理完成回复用户TTS
  • 播放一些和技能相关的提示音
  • 在用户等待时间太长时提示用户正在处理,降低用户对处理延时的感觉

# HTTP头

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length:

# body示例

{
  "version": "1.1",
  "sessionAttributes": {
    "key": "value"
  },
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Plain text String to speak"
    },
    "reprompt": {
      "outputSpeech": {
        "type": "PlainText",
        "text": "Plain text String to speak"
      }
    },
    "card": {
      "type": "Standard",
        "title": {
          "size":"LARGE|SMALL",
          "text":"20~32℃"
      },
        "content":"2018-08-27 | 广州",
        "imageUrl":"https://carfu.com/resources/card-images/race-car-small.png",
        "link": {
          "url":"example.iflyos.cn/",
          "text":"点击查看"
      }
    },
     "directives": [
    {
      "type": "AudioPlayer.Play",
      "playBehavior": "ENQUEUE",
      "audioItem": {
        "stream": {
          "type": "AUDIO",
          "url": "https://example.com/audiofile.mp3",
          "token": "S0wiXQZ1rVBkov...",
          "expectedPreviousToken": "f78b7d68...",
          "offsetInMilliseconds": 0
        },
        "metadata": {
          "title": "《十年》",
          "subtitle": "陈奕迅",
          "art": {
            "sources": [
              {
                "url": "https://example.com/brie-album-art.png"
              }
            ]
          }
        }   
      }
    }
  ],
    "expectSpeech": true,
    "shouldEndSession": true
  }
}

响应正文参数说明

参数 描述 类型 必须出现
version 版本,取值1.0 String
sessionAttributes 需要放入下一次请求的session{attributes{}}中回传至技能的属性。包含key, value Object
response 返回内容。 Object

# 标准响应中的对象

参数 描述 类型 必须出现
outputSpeech 操作返回的语音文本
- type: 输出语音类型,取值:PlainText,纯文本
- text: 文本内容,type取值为PlainText时需要出现该字段。
Object
reprompt 若该技能回复需要打开录音收听用户的语音回复,当用户在8秒内没有说话时,设备将推送该语音文本,用于再次提示用户输入。
推送后设备再打开录音8s。若用户依旧没有说话,则会话结束。
- type: 输出语音类型,取值:PlainText,纯文本
- text: 文本内容,type取值为PlainText时需要出现该字段。
Object
card 用于向设备的关联APP推送消息。支持三种卡片类型:Simple、Standard、List。
- Display Card
Object
directives 一组指令,用于指定使用特定接口进行设备级别的操作。目前支持以下指令:
- AudioPlayer Interface
Array
expectSpeech 该返回是否需要设备打开麦克风进行追问。true代表要追问,默认取值为false Boolean
shouldEndSession 该返回是否为会话的终点。true表示会话在响应后结束;false表示会话保持活动状态。如果未提供,则默认为true。我们约定:若回复中包含AudioPlayer,且技能没有过多交互,此处取值必须为true Boolean

# 针对不同请求的响应

request response格式
LaunchRequest 标准响应中的所有内容的均可根据业务需求选择包含
TextRequest 标准响应中的所有内容的均可根据业务需求选择包含
IntentRequest 标准响应中的所有内容的均可根据业务需求选择包含
SessionEndedRequest - 若reasonUSER_INITIATED,可以回复。回复内容中只能包括outputSpeech,且ShouldEndSession取值必须为true
- 若reasonERROR,不可回复。
AudioPlayer Request 只能包含标准响应中的directives,且仅支持AudioPlayer指令。该请求可以不回复。
PlaybackController Request 只能包含标准响应中的directives,且仅支持AudioPlayer指令。该请求可以不回复。