
# 接收并处理twilio发送的上行消息接口
#### 接口功能
接收并处理twilio发送的上行消息。
#### 使用说明
前提条件：正确创建whatsApp渠道配置，选择服务提供商为twilio。
#### 接口鉴权
通过twilio集成商接入WhatsApp使用该鉴权方式。
使用说明：
在AICC侧，渠道配置页面，配置webhook用户及密码。
调用whatsappadapter侧接口，请求头根据webhook用户及密码生成签名放到Authorization属性中。
#### Headers请求参数
表1请求Headers参数说明 
| 参数名称          | 选取原则 | 参数类型   | 默认值 | 说明                                              |
|:---|:---|:---|:---|:---|
| Content-Type  | 必选   | String | 无   | 固定填application/x-www-form-urlencoded。           |
| Authorization | 必选   | String | 无   | twilio基于webhook用户和密码生成Authorization，请求AICC侧时携带。 |
   
#### 接口原型
表2接口原型说明 
|   请求方法    |                                                                                 POST                                                                                 ||
|---|---|---|
| **请求URL** | https://ip:port/social/on/whatsapp/{whatsAppBsp}/message/{channelConfigId} | 其中，ip:port为对外暴露的nslb的ip和port；whatsAppBsp为集成方，twilio提供商场景固定填写twilio；channelConfigId为渠道id。 |
   
#### BODY请求参数
表3请求Body中参数说明 
| 参数名称                         | 选取原则 | 参数类型   | 说明                                                               |
|:---|:---|:---|:---|
| From                         | 必选   | String | 发送方                                                              |
| To                           | 必选   | String | 接收方                                                              |
| MessageSid                   | 必选   | String | 消息id标识                                                           |
| MessageType                  | 必选   | String | 消息类型：LOCATION、IMAGE、VEDIO、AUDIO、TEXT                             |
| MediaContentType0            | 可选   | String | 当MessageType为IMAGE、VEDIO、AUDIO时，此参数为多媒体类型，例如image/jpeg，audio/aac |
| MediaUrl0                    | 可选   | String | 当MessageType为IMAGE、VEDIO、AUDIO时，此参数为多媒体文件的下载地址                   |
| Body                         | 可选   | String | 当MessageType为TEXT时，此参数值为具体文本内容                                   |
| Address                      | 可选   | String | 当MessageType为LOCATION时，此参数值为位置信息的具体地址                            |
| Label                        | 可选   | String | 当MessageType为LOCATION时，此参数值为位置信息的位置名称                            |
| ProfileName                  | 可选   | String | 昵称                                                               |
| Latitude                     | 可选   | String | 当MessageType为LOCATION时，此参数值为位置信息的纬度                              |
| Longitude                    | 可选   | String | 当MessageType为LOCATION时，此参数值为位置信息的经度                              |
| OriginalRepliedMessageSid    | 可选   | String | 当是引用消息场景，此参数值为引用的消息的id标识                                         |
| OriginalRepliedMessageSender | 可选   | String | 当是引用消息场景，此参数值为引用的消息的发送方                                          |
   
#### 响应参数
调用本接口无响应内容。
#### 接口示例
- 请求示例
  ```
  POST /social/on/whatsapp/twilio/message/****
  --header 'Authorization: basic ****'
  --header 'Content-Type: application/x-www-form-urlencoded'
  --data-urlencode 'ProfileName=****'
  --data-urlencode 'From=whatsapp:****'
  --data-urlencode 'To=whatsapp:****'
  --data-urlencode 'MessageType=****'
  --data-urlencode 'MessageSid=****'
  --data-urlencode 'Body=****'
  ```
  
 
