#### 接口路径:https://dev.lingju.ai/serverapi/ljchat.do
<table style="width:100%">
<tbody>
<tr height="28" style="font-weight:bold;">
<td height="28" width="130px" >名称</td>
<td colspan="3" >聊天接口</td>
</tr>
<tr height="28" style="font-weight:bold;">
<td height="28" >接口路径</td>
<td colspan="3" >https://dev.lingju.ai/serverapi/ljchat.do</td>
</tr>
<tr height="28" style="font-weight:bold;">
<td height="28" >请求方式</td>
<td colspan="3" >post</td>
</tr>
</tbody>
</table>
#### http post请求示例:
~~~
post https://dev.lingju.ai/serverapi/ljchat.do
json格式串行化post上传,注意请求的header需添加 'Content-Type':'application/json;charset=UTF-8'
{
"accessToken":"xxxxxxxxxxxxxxxxxxxxxx",
"userip":"xxx.xxx.xxx.xxx",
"input":"今天天气怎么样",
"lat":"23.12635",
"lng":"113.38776",
"city":"广州",
"position":"广东广州",
"data":[
{
"target":ID,
"list":[]
}
]
}
~~~
#### 请求参数说明:
<table style="width:100%">
<thead>
<tr height="28">
<th width="130px">参数</th>
<th width="100px">数据类型</th>
<th width="130px">可需</th>
<th colspan="2" >描述</th>
</tr>
</thead>
<tbody>
<tr height="23" style="height:17.25pt">
<td height="23" >accessToken</td>
<td >String</td>
<td>必填</td>
<td colspan="2" >分配给开发者的专属appkey,请妥善保管</td>
</tr>
<tr height="23" style="height:17.25pt">
<td height="23" >userip</td>
<td >String</td>
<td>必填</td>
<td colspan="2" >终端设备的ip(用来获取终端设备所在城市。请开发者务必填写终端设备的ip,否则会影响询问天气、交通信息等需要获取终端设备所在城市对话的正常交流。)</td>
</tr>
<tr >
<td>input</td>
<td>String</td>
<td>必填</td>
<td colspan="2">文本输入,长度:[1,300],取值:普通标点符号及中英文数字</td>
</tr>
<tr>
<td>city</td>
<td>String</td>
<td></td>
<td colspan="2">城市(该字段如果有参数,必须跟“lat”以及“lng”一起传才有效)</td>
</tr>
<tr>
<td>lat</td>
<td>double</td>
<td></td>
<td colspan="2">纬度</td>
</tr>
<tr>
<td>lng</td>
<td>double</td>
<td></td>
<td colspan="2">经度</td>
</tr>
<tr>
<td>position</td>
<td>String</td>
<td></td>
<td colspan="2">具体位置</td>
</tr>
<tr>
<td rowspan="6">entryMode</td>
<td rowspan="6">Json</td>
<td rowspan="6">选填</td>
<td colspan="2">附带的JSON数据:</td>
</tr>
<tr>
<td>mode</td>
<td>录入方式(必填):<br>0=文本、<br>1=按键。 <br>数据类型:int</td>
</tr>
<tr>
<td>status</td>
<td>录入状态(必填):
<br> 0=正常录入、<br>1=当前正在合成文本时,打断文本合成录入、<br>2=当前正在播放音频,打断音频录入。
<br> 数据类型:int
</td>
<tr>
<td>audios</td>
<td>当前播放的音频在音频集合中的索引(从0开始,例如当前播放列表有5个音频,听到第二个音频时打断则填1)。<br>数据类型:int
</td>
</tr>
<tr>
<td>intent</td>
<td>按键意图(当录入方式mode=1时必填):<br>0=打开技能、<br>1=终止技能。<br>数据类型:int
</td>
</tr>
<tr>
<td>skillName</td>
<td>技能名(当按键意图intent=0时必填):例如(探索)。<br>数据类型:String
</td>
</tr>
<tr>
<td rowspan="3">data</td>
<td rowspan="3">JsonArray</td>
<td rowspan="3"></td>
<td colspan="2">附带的JSON数据:</td>
</tr>
<tr>
<td>target</td>
<td>目标对象id<br>数据类型:int</td>
</tr>
<tr>
<td>list</td>
<td>目标对象集合,Json,json<a href="http://doc.lingju.ai/@ljsdk/android_sdk" target="_blank">结构请参照</a></td>
</tr>
</tbody>
</table>
#### 接口返回JSON示例:
~~~
普通回复:
{
"answer":"广州今天天气预报说“大雨”,出门最好带上伞。",
"status":0
}
带指令的回复:
{
"answer":"{\"rtext\":\"好的\",\"outc\":0,
\"actions\":[{\"action\":\"QUERY\",
\"target\":{\"recyle\":0,\"id\":100,\"singer\":[\"周杰伦\"],\"release\":0,\"type\":\"歌曲\"},
\"hints\":{
\"success\":{\"text\":\"好的,为您播放周杰伦的歌\"},
\"failure\":{\"text\":\"抱歉,我找不到周杰伦的歌\"},
\"notsupport\":{\"text\":\"抱歉,我没办法播放歌曲\"}
}
},
{\"action\":\"SET\",
\"target\":{\"id\":300,\"origin\":\"QUERY\",\"control\":\"PLAY\",\"type\":\"AUDIO\"}}]}",
"status":0
}
~~~
#### 接口返回说明:
~~~
Content-Type:application/json;charset=UTF-8
~~~
<table style="width:100%">
<thead>
<tr height="28" >
<th height="28" width="130px">属性名</th>
<th width="100px">数据类型</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr height="23">
<td height="23" >status</td>
<td>int</td>
<td>状态码,0=成功,其它值则为错误码,请参考错误码表</td>
</tr>
<tr height="23">
<td height="23" >description</td>
<td >String</td>
<td>通常为空,出错时会有错误信息</td>
</tr>
<tr >
<td>answer</td>
<td >String</td>
<td>普遍的回复文本或json结构的字符串文本,若为json文本,请参考<a href="http://doc.lingju.ai/@ljsdk/android_sdk">指令说明文档</a>解析,若仅用于普通聊天,建议忽略json文本,以"暂不知道该功能"作为回复。</td>
</tr>
</tbody></table>