接受并处理gupshup发送的上行消息接口
接口功能
接受并处理gupshup发送的上行消息。
接口鉴权
通过gupshup集成商接入WhatsApp使用该鉴权方式。
使用说明:
在AICC测,渠道配置页面,配置webhook密码。
调用whatsappadapter侧接口,请求中添加请求头Authorization,Authorization的值为webhook密码。
Headers请求参数
| 参数名称 | 选取原则 | 参数类型 | 默认值 | 说明 |
|---|---|---|---|---|
| Content-Type | 必选 | String | 无 | 固定填 application/json; charset=UTF-8。 |
| Authorization | 必选 | String | 无 | AICC测渠道配置处配置的webhook认证密码 |
接口原型
| 请求方法 | POST | |
|---|---|---|
| 请求URL | https://ip:port/social/on/whatsapp/{whatsAppBsp}/message/{channelId} | 其中,ip:port为对外暴露的nslb的ip和port,whatsAppBsp为集成方, channelId为渠道id |
BODY请求参数
| 参数名称 | 选取原则 | 参数类型 | 说明 |
|---|---|---|---|
| timestamp | 必选 | long | 用户发送消息的时间;为Unix时间戳(秒); |
| type | 必选 | String | 消息的类型;message(用户消息) |
| payload | 必选 | object | 消息的载体;表4 |
| 参数名称 | 选取原则 | 参数类型 | 说明 |
|---|---|---|---|
| id | 必选 | String | 用户消息唯一编码 |
| source | 必选 | String | 用户注册whatsapp的手机号 |
| type | 必选 | String | 消息类型:text(文本)、audio(音频)、image(图片)、video(视频)、location(位置)、button_reply(交互式按钮回复消息),list_reply(交互式列表回复消息)、quick_reply(模板快速回复消息) |
| payload | 必选 | object | 消息内容; |
| context | 可选 | object | 引用消息信息; |
| 参数名称 | 选取原则 | 参数类型 | 说明 |
|---|---|---|---|
| context | 可选 | object | 消息引用。表6 |
| sender | 必选 | object | 消息发送人信息。表7 |
| text | 可选 | String | 文本消息内容,消息类型为text。 |
| url | 可选 | String | 多媒体消息,消息类型为音频、视频、图片。 |
| caption | 可选 | String | 标题,多媒体消息标题。 |
| contentType | 可选 | String | 文件类型。如:image/jpg |
| name | 可选 | String | 多媒体文件名。 |
| latitude | 可选 | String | 纬度,消息类型为location |
| longitude | 可选 | String | 经度,消息类型为location |
响应参数
调用本接口无响应内容。
接口示例
- 请求示例
POST /social/on/whatsapp/gupshup/message/202105102694809992 host: 10.10.10.2:18446 connection: Keep-Alive x-forwarded-for: 10.10.10.3, 10.10.10.4 x-real-ip: 10.10.10.5 content-length: 401 remote-host: 10.10.10.6 user-agent: java/socket Authorization: ************* content-type: application/json; charset=utf-8 accept: */* { "timestamp": 1743146844100, "type": "message", "payload": { "id": "wamid.HBgNODYxODc2NTkwMjAwMRUCABIYIEVCRTAwQUI4RDEyMDVCNzBCQUU0ODEyOUM0NTQ0RUEzAA==", "source": "8618*****1", "type": "image", "payload": { "url": "https://filemanager.gupshup.io/wa/*********", "contentType": "image/jpeg", "urlExpiry": 1743751644100 }, "sender": { "phone": "8618*******1", "name": "AI****i", "country_code": "86", "dial_code": "18*****1" } } }