发送交互下行的5G消息,回复用户的上行消息。
接口说明
前提条件
已通过 UpgradeToRCSSignature 接口将文本短信签名升级为 5G 消息签名。
已通过 CreateRCSTemplate 接口创建 5G 消息模板,且模板审核通过。
已收到用户的上行消息回执,并获取其中的 rcs_id。
使用说明
交互下行消息需关联用户上行消息的 RcsID。
InReplyToRcsID 只能填写用户上行消息的 rcs_id,不能填写下行消息的 ID。
发送结果通过回执报文推送,回执中携带 BizId 和 OutId。
支持范围
支持运营商:中国移动。
- 支持终端:需要终端系统或短信软件支持,且已开启相应开关。支持的终端系统或短信软件范围:
iPhone 11 及以上,且 iOS 18.1 以上。
华为鸿蒙 HarmonyOS 2.0,或 EMUI 9.0~11.0,信息 APP 版本 11.1.0.551 及以上。
小米 2~15,短信 APP 版本 12.3.2.7。
荣耀 Magic OS 或 Magic UI 4.0 及以上,智能短信插件 8.0.1.300 及以上。
vivo Android 7.0 及以上,FuntouchOS 或 OriginOS 均可,快应用框架版本 1.09.40900 以上,短信 APP 6.0.0 以上。
OPPO ColorOS 11 以上,或 ColorOS 7.0 以上且安卓 10~11,快应用 5.7 以上,短信 APP 5.17 以上。
三星 OneUI 4.1 以上,短信 APP 13.2.20.13。
手机终端还需按机型开启 5G、RCS 信息、短信智能识别、图文短信、智慧信息服务、信息化卡片展示等开关。
QPS 限制
本接口的单用户 QPS 限制为 1000 次/秒。超过限制,API 调用将会被限流,这可能会影响您的业务,请合理调用。
消息发送最大速率 300 条/秒。超出消息发送最大速率后将在队列堆积,逐个发送。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| InReplyToRcsID |
string |
是 |
回复的目标 RcsID。只能填写用户上行消息的 rcs_id,不能填写下行消息的 ID。 |
100000096034031_1552101_03304904325170151776946304855 |
| SignName |
string |
是 |
短信签名名称。 |
阿里云5G消息 |
| TemplateCode |
string |
是 |
模板 Code。 |
RCS_SMS_10001052 |
| PhoneNumbers |
string |
是 |
11 位手机号。 |
13500001234 |
| TemplateParam |
string |
否 |
模板参数。JSON 格式,如{"username":"小李","account":"1001112"}。 |
{"username":"小李","account":"1001112"} |
| OutId |
string |
否 |
外部流水扩展字段,在回执报文中会携带。 |
12391244932857 |
InReplyToRcsID 取值说明
InReplyToRcsID 只能填写用户上行消息的 rcs_id,不能填写下行消息的 ID。上行消息超过可回复时间限制后不可再回复,目前限制为 30 分钟以内。
上行回执结构
用户点击固定菜单或悬浮菜单中的某一项时,客户端会向平台回传一条上行消息,回执报文中的 content 字段为 JSON 格式,包含 response 对象,其中是 reply 或 action 之一,字段内容与下行定义完全对应。回执报文中的 rcs_id 即为本接口 InReplyToRcsID 的取值。
用户点击 reply 建议回复时的上行格式:
{
"response": {
"reply": {
"displayText": "是的",
"postback": {
"data": "b3a1f8e2-7c4d-4e9a-bc56-1a2d3f4e5678"
}
}
}
}
用户点击 action 建议操作时的上行格式:
{
"response": {
"action": {
"displayText": "打开官网",
"postback": {
"data": "c4b2e9f1-8d5a-4f3b-ae67-2b3c4d5e6789"
}
}
}
}
| 字段 | 类型 | 必填 | 说明 |
| displayText | string | 是 | 用户在按钮上看到的文字,1~25 字符,与下行定义一致 |
| postback.data | string | 是 | 固定菜单或悬浮菜单中定义的 postback.data,平台据此执行对应业务逻辑 |
完整交互流程
第一步:通过 SendRCS 接口下发带悬浮菜单的消息
[
{
"reply": {
"displayText": "确认添加",
"postback": { "data": "0a1b2c3d-4e5f-6789-0abc-def123456789" }
}
},
{
"reply": {
"displayText": "取消添加",
"postback": { "data": "1b2c3d4e-5f6a-7890-1bcd-ef1234567890" }
}
}
]
第二步:用户点击确认添加按钮,客户端回传上行消息
{
"response": {
"reply": {
"displayText": "确认添加",
"postback": { "data": "0a1b2c3d-4e5f-6789-0abc-def123456789" }
}
}
}
第三步:根据 postback.data 执行业务逻辑,并调用本接口回复用户
取上行回执报文中的 rcs_id 作为 InReplyToRcsID 传入本接口,即可向用户发送交互下行消息。
{
"PhoneNumbers": "13800138000",
"SignName": "阿里云",
"TemplateCode": "RCS_SMS_10001052",
"InReplyToRcsID": "100000096034031_1552101_03304904325170151776946304855",
"TemplateParam": "{\n \"username\": \"小李\"\n}"
}
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
|||
| AccessDeniedDetail |
string |
访问被拒绝时返回的详细信息。 |
None |
| RequestId |
string |
本次请求的 ID。 |
A90E4451-FED7-49D2-87C8-00700A8C4D0D |
| Message |
string |
状态码的描述。 |
OK |
| Data |
object |
返回数据,具体请参见下方 Data 返回数据结构说明。 |
|
| Code |
string |
请求状态码。返回 OK 代表请求成功。 |
OK |
| Success |
boolean |
是否调用成功。
|
true |
Data 返回数据结构说明
Data 为发送结果数据,包含以下字段:
| 字段 | 类型 | 描述 | 示例 |
| RcsID | String | 5G 消息唯一 ID,为本次交互下行消息新生成的 ID,与入参 InReplyToRcsID 不同 | 100000096034031_1552101_03304904325170151776946304856 |
| BizId | String | 发送回执 ID,即发送流水号。下行发送时返回,在下行回执报文中原样携带,用于关联发送请求与回执 | 217124476946304664 |
返回示例
{
"Code": "OK",
"RequestId": "A90E4451-FED7-49D2-87C8-00700A8C4D0D",
"Success": true,
"Data": {
"RcsID": "100000096034031_1552101_03304904325170151776946304856",
"BizId": "217124476946304664"
}
}
示例
正常返回示例
JSON格式
{
"AccessDeniedDetail": "None",
"RequestId": "A90E4451-FED7-49D2-87C8-00700A8C4D0D",
"Message": "OK",
"Data": {
"test": "test",
"test2": 1
},
"Code": "OK",
"Success": true
}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。