微信开放平台语义理解接口调用(http 请求)简单方便,用户无需掌握语义理解及相关技术,只需根据自己的产品特点,选择相应的服务即可搭建一套智能语义服务。
# 第一步:创建应用
请到“管理中心”创建应用,点击“创建移动应用”或者“创建网站应用”,填写相关资料,然后将该应用提交审核,只有审核通过的应用才能进行开发。
注册完毕,我们会在 7 个工作日内完成审核工作。审核通过之后,开放平台将分配给该移动应用全局唯一的 AppID 和 AppSecret。
# 第二步:根据 AppID 和 AppSecret 获得 access token
# 调用接口:
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
# 参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
grant_type | 是 | 获取 access_token 填写 client_credential |
appid | 是 | 应用的 appid |
secret | 是 | 应用的 appsecret |
# 返回说明:
正常情况下,微信会返回下述 JSON 数据包。
{
"access_token": "ACCESS_TOKEN",
"expires_in": 7200
}
参数 | 说明 |
---|---|
access_token | 获取到的凭证 |
expires_in | 凭证有效时间,单位:秒 |
错误时微信会返回错误码等信息,JSON 数据包示例如下(该示例为 AppID 无效错误):
{
"errcode": 40013,
"errmsg": "invalid appid"
}
# 第三步:使用 access token 调用语义理解接口
# 输入说明:
POST https://api.weixin.qq.com/semantic/semproxy/search?access_token=YOUR_ACCESS_TOKEN
POST 数据格式:JSON
{
"query": "查一下明天从北京到上海的南航机票",
"city": "北京",
"category": "flight,hotel",
"appid": "wxaaaaaaaaaaaaaaaa",
"uid": "123456"
}
# 输入参数说明:
参数 | 是否必须 | 参数类型 | 说明 |
---|---|---|---|
access_token | 是 | String | 根据 appid 和 appsecret 获取到的 token |
query | 是 | String | 输入文本串 |
category | 是 | String | 需要使用的服务类型,多个用“,”隔开,不能为空 |
latitude | 见接口协议文档 | Float | 纬度坐标,与经度同时传入;与城市二选一传入 |
longitude | 见接口协议文档 | Float | 经度坐标,与纬度同时传入;与城市二选一传入 |
city | 见接口协议文档 | String | 城市名称,与经纬度二选一传入 |
region | 见接口协议文档 | String | 区域名称,在城市存在的情况下可省;与经纬度二选一传入 |
appid | 是 | String | Appid,开发者的唯一标识 |
uid | 否 | String | 用户唯一 id(非开发者 id),用户区分应用下的不同用户(建议填入用户 openid),如果为空,则无法使用上下文理解功能。appid 和 uid 同时存在的情况下,才可以使用上下文理解功能。 |
# 返回说明:
正常情况下,微信会返回下述 JSON 数据包。
{
"errcode": 0,
"query": "查一下明天从北京到上海的南航机票",
"type": "flight",
"semantic": {
"details": {
"start_loc": {
"type": "LOC_CITY",
"city": "北京市",
"city_simple": "北京",
"loc_ori": "北京"
},
"end_loc": {
"type": "LOC_CITY",
"city": "上海市",
"city_simple": "上海",
"loc_ori": "上海"
},
"start_date": {
"type": "DT_ORI",
"date": "2014-03-05",
"date_ori": "明天"
},
"airline": "中国南方航空公司"
},
"intent": "SEARCH"
}
}
# 返回参数说明:
参数 | 是否必须 | 参数类型 | 说明 |
---|---|---|---|
errcode | 是 | Int | 表示请求后的状态 |
query | 是 | String | 用户的输入字符串 |
type | 是 | String | 服务的全局类型 id,详见协议文档中垂直服务协议定义 |
semantic | 是 | Object | 语义理解后的结构化标识,各服务不同 |
result | 否 | Array | 部分类别的结果 |
answer | 否 | String | 部分类别的结果 html5 展示,目前不支持 |
text | 否 | String | 特殊回复说明 |
更多详细内容与协议说明,请查看:语义理解接口协议文档