ex

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
TMBOY
Date:
Tue Jul 18 16:27:22 2017 +0800
Revision:
44:c1d8923072ba
?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TMBOY 44:c1d8923072ba 1 # 请求字段解释
TMBOY 44:c1d8923072ba 2
TMBOY 44:c1d8923072ba 3 ## Table of Contents
TMBOY 44:c1d8923072ba 4
TMBOY 44:c1d8923072ba 5
TMBOY 44:c1d8923072ba 6 * [请求字段解释](#请求字段解释)
TMBOY 44:c1d8923072ba 7 * [Table of Contents](#table-of-contents)
TMBOY 44:c1d8923072ba 8 * [请求示例](#请求示例)
TMBOY 44:c1d8923072ba 9 * [请求值(request)中数据格式分块详细说明](#请求值request中数据格式分块详细说明)
TMBOY 44:c1d8923072ba 10 * [客户端能力相关(device_interface, device_event, device_status)](#客户端能力相关device_interface-device_event-device_status)
TMBOY 44:c1d8923072ba 11 * [请求字段中,.supported_content_type字段的解释](#请求字段中supported_content_type字段的解释)
TMBOY 44:c1d8923072ba 12
TMBOY 44:c1d8923072ba 13
TMBOY 44:c1d8923072ba 14 ### 请求示例
TMBOY 44:c1d8923072ba 15
TMBOY 44:c1d8923072ba 16 给服务端发请求内容。使用sdk的用户,无需关注此节,因为sdk的请求不用手动拼
TMBOY 44:c1d8923072ba 17
TMBOY 44:c1d8923072ba 18 ```javascript
TMBOY 44:c1d8923072ba 19 {
TMBOY 44:c1d8923072ba 20 //==========以下是开放sdk会有的字段========================
TMBOY 44:c1d8923072ba 21 "appid": "650DEBC2B99A4dA4",
TMBOY 44:c1d8923072ba 22 "appkey": "2F4B662AF2064323A16122D702160F15",
TMBOY 44:c1d8923072ba 23 "sdk_ui": "no",
TMBOY 44:c1d8923072ba 24 "sdk_init": "no",
TMBOY 44:c1d8923072ba 25 "appname": "com.baidu.duersdk.xiaomi",
TMBOY 44:c1d8923072ba 26 "from_client": "sdk",
TMBOY 44:c1d8923072ba 27 //========================================================
TMBOY 44:c1d8923072ba 28 //string 用户id, 如有Cookie则不需要此字段
TMBOY 44:c1d8923072ba 29 "request_uid": "string",
TMBOY 44:c1d8923072ba 30 //string 输入来源,-1-回访引导请求,0-语音输入,1-键盘输入,2-编辑query,3-引导query,4-重新发送,6-新用户回访引导请求,7-用户上传图片,8-点击导航图标输入,9-applink方式传参数发送,10-自动回复,11-未知,12-对话过程中的特殊回访,13-手百插件新用户引导浮层点击,14-feed流拉取,21-心跳,30-客户端event
TMBOY 44:c1d8923072ba 31 //标识用户发这个请求的方法,参见文档 http://agroup.baidu.com/dbo/md/article/49113
TMBOY 44:c1d8923072ba 32 "query_type": "string",
TMBOY 44:c1d8923072ba 33 //默认为空,类型string, 多个以逗号分隔, 为空可以不填该字段
TMBOY 44:c1d8923072ba 34 "hint_id": "用户选中hint的id"
TMBOY 44:c1d8923072ba 35 //string 机器id
TMBOY 44:c1d8923072ba 36 "CUID": "string",
TMBOY 44:c1d8923072ba 37 //double 经度
TMBOY 44:c1d8923072ba 38 "longitude": double,
TMBOY 44:c1d8923072ba 39 //double 纬度
TMBOY 44:c1d8923072ba 40 "latitude": double,
TMBOY 44:c1d8923072ba 41 //可选,如果经纬度是来自于缓存,增加location_type:cache,add by 王芃、吴芮生2016-08-11
TMBOY 44:c1d8923072ba 42 "location_type": "wgs84",
TMBOY 44:c1d8923072ba 43 //当前定位数据坐标系统,取值为:”bd09ll”(百度球面坐标)或”wgs84”(GPS球面坐标)或”bd09mc”(百度墨卡托坐标)。默认是wgs84
TMBOY 44:c1d8923072ba 44 "location_system":"wgs84"
TMBOY 44:c1d8923072ba 45 //如果用户是语音输入的,存语音输入的id
TMBOY 44:c1d8923072ba 46 "speech_id":"xxxx",
TMBOY 44:c1d8923072ba 47 //string 请求类型,-1-手百插件注册(query为空), 0-输入框输入,1-鼠标点击输入,2-查看聊天历史,3-写入聊天历史,4-注册用户信息,5-查看用户信息,6-查看熊成长信息,7-更改熊身上装备,8-检查是否可以修改昵称, 9-app从后台恢复
TMBOY 44:c1d8923072ba 48 "request_type": "string",
TMBOY 44:c1d8923072ba 49 //string 请求来源,0-和熊对话,1-框中输入,2-主动触发熊,3-首页, 4-feed流,,5-客户端选择操作类型请求
TMBOY 44:c1d8923072ba 50 "request_from": "string",
TMBOY 44:c1d8923072ba 51 //string 服务标识
TMBOY 44:c1d8923072ba 52 "sample_name": "bear_brain_wireless",
TMBOY 44:c1d8923072ba 53 //string 客户端生成的消息id
TMBOY 44:c1d8923072ba 54 "client_msg_id": "string",
TMBOY 44:c1d8923072ba 55 //int 调试标记,1-测试消息 0或字段不存在表示线上消息
TMBOY 44:c1d8923072ba 56 "debug": int,
TMBOY 44:c1d8923072ba 57 //int 消息模式, 1-3D演示模式 0或字段不存在为默认状态
TMBOY 44:c1d8923072ba 58 "mode": int,
TMBOY 44:c1d8923072ba 59 //操作系统, 可选,android/ios
TMBOY 44:c1d8923072ba 60 "operation_system": "ios",
TMBOY 44:c1d8923072ba 61 "operation_system_version":"7.0.0", //操作系统版本号(目前只有对外sdk有该字段),ios取[[[UIDevice currentDevice] systemVersion] floatValue],安卓取android.os.Build.VERSION.RELEASE
TMBOY 44:c1d8923072ba 62 "device_brand":"apple", //设备品牌 (目前只有对外sdk有该字段),ios写死"apple",安卓取android.os.Build.BRAND
TMBOY 44:c1d8923072ba 63 "device_model":"iphone 6s", //设备具体型号 (目前只有对外sdk有该字段)ios取 设备型号字符串 sysctlbyname("hw.machine", name, &size, NULL, 0);,安卓取android.os.Build.MODEL
TMBOY 44:c1d8923072ba 64 "device_interface":{
TMBOY 44:c1d8923072ba 65 "Alerts":{},
TMBOY 44:c1d8923072ba 66 "AudioPlayer":{
TMBOY 44:c1d8923072ba 67 "no_pause":1,
TMBOY 44:c1d8923072ba 68 "no_seek":1,
TMBOY 44:c1d8923072ba 69 },
TMBOY 44:c1d8923072ba 70 "PlaybackController":{},
TMBOY 44:c1d8923072ba 71 "Speaker":{},
TMBOY 44:c1d8923072ba 72 "Settings":{},
TMBOY 44:c1d8923072ba 73 "SpeechSynthesizer":{},
TMBOY 44:c1d8923072ba 74 "System":{}
TMBOY 44:c1d8923072ba 75 },
TMBOY 44:c1d8923072ba 76 "device_event":{
TMBOY 44:c1d8923072ba 77 //query_type==30 的时候才会有 device_event
TMBOY 44:c1d8923072ba 78 "header": {
TMBOY 44:c1d8923072ba 79 "namespace": "AudioPlayer",
TMBOY 44:c1d8923072ba 80 "name": "PlaybackStarted",
TMBOY 44:c1d8923072ba 81 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 82 },
TMBOY 44:c1d8923072ba 83 "payload": {
TMBOY 44:c1d8923072ba 84 //AudioPlayer里可能出现的payload
TMBOY 44:c1d8923072ba 85 "token": "156",
TMBOY 44:c1d8923072ba 86 "offset_ms": 10000
TMBOY 44:c1d8923072ba 87 //Speaker里可能出现的payload
TMBOY 44:c1d8923072ba 88 "volume": 1,
TMBOY 44:c1d8923072ba 89 //SpeechSynthesizer可能出现的payload
TMBOY 44:c1d8923072ba 90 "token": "156",
TMBOY 44:c1d8923072ba 91 "type": "{{Text/SSML}}",
TMBOY 44:c1d8923072ba 92 "content": ["xxxx1", "xxxx2"],
TMBOY 44:c1d8923072ba 93 "speak_behavior": "REPLACE_ALL",
TMBOY 44:c1d8923072ba 94 "should_get_next_speech": true
TMBOY 44:c1d8923072ba 95 }
TMBOY 44:c1d8923072ba 96 },
TMBOY 44:c1d8923072ba 97 "device_status":{
TMBOY 44:c1d8923072ba 98 "SpeechSynthesizer":{
TMBOY 44:c1d8923072ba 99 "token":"xxx",//正在播放的音频流id
TMBOY 44:c1d8923072ba 100 "offset_ms":20000,//播放到多少ms了
TMBOY 44:c1d8923072ba 101 "player_activity":"PLAYING / FINISHED"
TMBOY 44:c1d8923072ba 102 },
TMBOY 44:c1d8923072ba 103 "Speaker":{
TMBOY 44:c1d8923072ba 104 "volume": 50,
TMBOY 44:c1d8923072ba 105 "muted": false
TMBOY 44:c1d8923072ba 106 },
TMBOY 44:c1d8923072ba 107 "AudioPlayer":{
TMBOY 44:c1d8923072ba 108 "token":"xxx",//正在播放的音频流id
TMBOY 44:c1d8923072ba 109 "offset_ms":20000,//播放到多少ms了
TMBOY 44:c1d8923072ba 110 "player_activity":"IDLE PAUSED PLAYING BUFFER_UNDERRUN FINISHED STOPPED"
TMBOY 44:c1d8923072ba 111 },
TMBOY 44:c1d8923072ba 112 //如果用户界面上有一些可操作元素,需要做语音控制,可以传这个字段
TMBOY 44:c1d8923072ba 113 "UiControl":{
TMBOY 44:c1d8923072ba 114 "items":[
TMBOY 44:c1d8923072ba 115 {"label":"下一个","url:"xxapp://next"},
TMBOY 44:c1d8923072ba 116 {"label":"暂停”,url:"xxapp://pause"},
TMBOY 44:c1d8923072ba 117 {"label":”停止”,url:"xxapp://stop"},
TMBOY 44:c1d8923072ba 118 ],
TMBOY 44:c1d8923072ba 119 },
TMBOY 44:c1d8923072ba 120 //可以传被控制的设备
TMBOY 44:c1d8923072ba 121 "SmartHomeControl":{
TMBOY 44:c1d8923072ba 122 "target_devices":[
TMBOY 44:c1d8923072ba 123 {"name":"客厅的电视","id":"xxxxxx","type":"duer_iot"},//type、device_id可选
TMBOY 44:c1d8923072ba 124 ],
TMBOY 44:c1d8923072ba 125 },
TMBOY 44:c1d8923072ba 126 },
TMBOY 44:c1d8923072ba 127 //app_ver 版本号,2.0.0之后返回现在的v2格式
TMBOY 44:c1d8923072ba 128 "app_ver": "2.0.0",
TMBOY 44:c1d8923072ba 129 "searchbox_ver":"8.0",//宿主版本号,只存在于插件形式,比如手百、地图、浏览器
TMBOY 44:c1d8923072ba 130 //string 可选,默认值是"txt",可用的值现在有txt / image,消息内容的类型,会决定服务端如何解析request_query
TMBOY 44:c1d8923072ba 131 "content_type": "image",
TMBOY 44:c1d8923072ba 132 //int 可选,content_type=='image'的时候,表示图片的高度
TMBOY 44:c1d8923072ba 133 "image_height": int,
TMBOY 44:c1d8923072ba 134 //int 可选,content_type=='image'的时候,表示图片的宽度
TMBOY 44:c1d8923072ba 135 "image_width": int,
TMBOY 44:c1d8923072ba 136 //string 请求query
TMBOY 44:c1d8923072ba 137 "request_query": "query",
TMBOY 44:c1d8923072ba 138 //数组,标志客户端支持的内容类型,可选,如果不传,认为客户端都支持
TMBOY 44:c1d8923072ba 139 "supported_content_type":["audio","image","video","webview","speech"],
TMBOY 44:c1d8923072ba 140
TMBOY 44:c1d8923072ba 141 //可选,如果是一个控制指令,可以传target_device_id,这个字段会被透传给bot,作为调用设备云的硬件id
TMBOY 44:c1d8923072ba 142 //未来会变成不传这个字段,靠query解析和设备管理理解出这个字段
TMBOY 44:c1d8923072ba 143 "target_device_id":"xxxxxx",
TMBOY 44:c1d8923072ba 144 }
TMBOY 44:c1d8923072ba 145 ```
TMBOY 44:c1d8923072ba 146
TMBOY 44:c1d8923072ba 147 ### 请求值(request)中数据格式分块详细说明
TMBOY 44:c1d8923072ba 148
TMBOY 44:c1d8923072ba 149 #### 客户端能力相关(device_interface, device_event, device_status)
TMBOY 44:c1d8923072ba 150
TMBOY 44:c1d8923072ba 151 * device_interface 标识客户端有哪些能力
TMBOY 44:c1d8923072ba 152 * AudioPlayer
TMBOY 44:c1d8923072ba 153 * no_pause 说明客户端不支持暂停、继续
TMBOY 44:c1d8923072ba 154 * no_seek 说明客户端不支持快进、快退、定位播放
TMBOY 44:c1d8923072ba 155 * SpeechSynthesizer
TMBOY 44:c1d8923072ba 156 * Speaker
TMBOY 44:c1d8923072ba 157 * device_event 客户端事件的类型和内容。只有query_type==30的时候,才会有device_event,此时会忽略query字段(没有文本query),比如下面的端能力,里面都有相关事件的定义
TMBOY 44:c1d8923072ba 158 * [AudioPlayer](../directives/AudioPlayer.md) 音乐播放
TMBOY 44:c1d8923072ba 159 * [Speaker](../directives/Speaker.md) 扬声器控制、设置
TMBOY 44:c1d8923072ba 160 * [SpeechSynthesizer](../directives/SpeechSynthesizer.md) 语音播报(TTS)
TMBOY 44:c1d8923072ba 161 例如:
TMBOY 44:c1d8923072ba 162
TMBOY 44:c1d8923072ba 163 ```javascript
TMBOY 44:c1d8923072ba 164 "device_event":{
TMBOY 44:c1d8923072ba 165 "header": {
TMBOY 44:c1d8923072ba 166 "namespace": "AudioPlayer",
TMBOY 44:c1d8923072ba 167 "name": "PlaybackStarted",
TMBOY 44:c1d8923072ba 168 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 169 },
TMBOY 44:c1d8923072ba 170 "payload": {
TMBOY 44:c1d8923072ba 171 "token": "156",
TMBOY 44:c1d8923072ba 172 "offset_ms": 10000
TMBOY 44:c1d8923072ba 173 }
TMBOY 44:c1d8923072ba 174 }
TMBOY 44:c1d8923072ba 175 ```
TMBOY 44:c1d8923072ba 176
TMBOY 44:c1d8923072ba 177 * device_status 客户端的当前状态,按能力分类(每种端能力有每种端能力的状态)
TMBOY 44:c1d8923072ba 178 * AudioPlayer
TMBOY 44:c1d8923072ba 179 * SpeechSynthesizer
TMBOY 44:c1d8923072ba 180 * Speaker
TMBOY 44:c1d8923072ba 181 例如:
TMBOY 44:c1d8923072ba 182
TMBOY 44:c1d8923072ba 183 ```javascript
TMBOY 44:c1d8923072ba 184 "device_status":{
TMBOY 44:c1d8923072ba 185 "SpeechSynthesizer":{
TMBOY 44:c1d8923072ba 186 "token":"xxx",//正在播放的音频流id
TMBOY 44:c1d8923072ba 187 "offset_ms":20000,//播放到多少ms了
TMBOY 44:c1d8923072ba 188 "player_activity":"PLAYING / FINISHED"
TMBOY 44:c1d8923072ba 189 },
TMBOY 44:c1d8923072ba 190 "Speaker":{
TMBOY 44:c1d8923072ba 191 "volume": 50,
TMBOY 44:c1d8923072ba 192 "muted": false
TMBOY 44:c1d8923072ba 193 },
TMBOY 44:c1d8923072ba 194 "AudioPlayer":{
TMBOY 44:c1d8923072ba 195 "token":"xxx",//正在播放的音频流id
TMBOY 44:c1d8923072ba 196 "offset_ms":20000,//播放到多少ms了
TMBOY 44:c1d8923072ba 197 "player_activity":"IDLE / PAUSED / PLAYING / BUFFER_UNDERRUN / FINISHED / STOPPED"
TMBOY 44:c1d8923072ba 198 }
TMBOY 44:c1d8923072ba 199 }
TMBOY 44:c1d8923072ba 200 ```
TMBOY 44:c1d8923072ba 201 * target_device_id 可选,如果是一个控制指令,可以传target_device_id,这个字段会被透传给bot,作为调用设备云的硬件id
TMBOY 44:c1d8923072ba 202 * 未来会变成不传这个字段,靠query解析和设备管理理解出这个字段
TMBOY 44:c1d8923072ba 203
TMBOY 44:c1d8923072ba 204 #### 请求字段中,.supported_content_type字段的解释
TMBOY 44:c1d8923072ba 205 表示了端支持的内容类型,bot应该召回端支持的内容类型,**不召回**端不支持的内容
TMBOY 44:c1d8923072ba 206 * audio
TMBOY 44:c1d8923072ba 207 * video
TMBOY 44:c1d8923072ba 208 * image
TMBOY 44:c1d8923072ba 209 * webview
TMBOY 44:c1d8923072ba 210 * speech