It's easy to call (send an HTTP request to) the Weixin Open Platform semantic understanding API. You do not need to know anything about semantic understanding or the relevant technical details. You can simply select the relevant services based on your business features to build a smart semantic service.
# Step 1: Create an app
Go to the "Management Center", click "Create Mobile App" or "Create Website App", and fill in the relevant information. Then, submit this app for review. Development can start after the app is approved.
After you have finished the registration process, we will complete the review within seven business days. After the app is approved, the Open Platform will allocate a globally unique AppID and AppSecret to the mobile app.
# Step 2: Obtain an access token based on the AppID and AppSecret
# Call the API:
HTTP request method: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
# Parameters
Parameter | Required | Description |
---|---|---|
grant_type | Yes | Enter client_credential to get access_token |
appid | Yes | The app's AppID. |
secret | Yes | The app's AppSecret. |
# Response description:
For a successful request, Weixin returns the following JSON packet:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200
}
Parameter | Description |
---|---|
access_token | The obtained credential |
expires_in | The time when the credential expires (in sec) |
When an error occurs, Weixin will return an error code and related information. An example of the JSON packet (for an invalid AppID error) is shown below:
{
"errcode":40013,
"errmsg":"invalid appid"
}
# Step 3: Use the access token to call the semantic understanding API
# Information entry instructions:
HTTP request method: POST (HTTPS protocol should be used)
https://api.weixin.qq.com/semantic/semproxy/search?access_token=YOUR_ACCESS_TOKEN
POST data format: JSON
POST data example:
{
"query":"Query China Southern Airlines tickets from Beijing to Shanghai tomorrow",
"city":"Beijing",
"category": "flight,hotel",
"appid":"wxaaaaaaaaaaaaaaaa",
"uid":"123456"
}
# Parameters:
Parameter | Required | Type | Description |
---|---|---|---|
access_token | Yes | String | The token obtained based on the AppID and AppSecret |
query | Yes | String | Enter a text string |
category | Yes | String | Service type. Separate multiple types with commas (,). This parameter can be left blank. |
latitude | See the API protocol documentation. | Float | Latitude coordinates, provided with longitude coordinates at the same time. This parameter is not required if "city" is specified. |
longitude | See the API protocol documentation. | Float | Longitude coordinates, provided with latitude coordinates at the same time. This parameter is not required if "city" is specified. |
city | See the API protocol documentation. | String | City name. This parameter is not required if "latitude" and "longitude" are specified. |
region | See the API protocol documentation. | String | Region name. This parameter is not required if "city" or "latitude" and "longitude" are specified. |
appid | Yes | String | The AppID that uniquely identifies the developer |
uid | No | String | The unique ID of the user (not the developer). This is used to distinguish between users in the app (we recommend using the user's openid). If this field is left blank, you cannot use the context understanding feature, because this requires both the AppID and UID. |
# Response description:
For a successful request, Weixin returns the following JSON packet:
{
"errcode":0,
"query":"Query China Southern Airlines tickets from Beijing to Shanghai tomorrow",
"type":"flight",
"semantic":{
"details":{
"start_loc":{
"type":"LOC_CITY",
Beijing
"city_simple":"Beijing",
"loc_ori":"Beijing"
},
"end_loc": {
"type":"LOC_CITY",
"city":"Shanghai City",
"city_simple":"Shanghai",
"loc_ori":"Shanghai"
},
"start_date": {
"type":"DT_ORI",
"date":"2014-03-05",
"date_ori":"Tomorrow"
},
"airline":"China Southern Airlines"
},
"intent":"SEARCH"
}
}
# Response parameters:
Parameter | Required | Type | Description |
---|---|---|---|
errcode | Yes | Int | Indicates the request status |
query | Yes | String | The string entered by the user |
type | Yes | String | The global type ID of the service. See the definition of the vertical service protocol in the protocol documentation. |
semantic | Yes | Object | The structured identifier after semantic understanding (different for each service) |
result | No | Array | The results for some categories |
answer | No | String | The results for some categories displayed in HTML5 (currently unsupported) |
text | No | String | Special reply instructions |
For more detailed information and protocol description, see: Semantic Understanding API Protocol Documentation.