AddRcsSignMenu - 创建或编辑5G消息固定菜单

更新时间:
复制 MD 格式

创建或编辑5G消息固定菜单。

接口说明

前提条件

已通过 UpgradeToRCSSignature 接口将文本短信签名升级为 5G 消息签名。

使用说明

  • 同一签名下仅支持一个固定菜单,重复调用将覆盖已有菜单内容。

QPS 限制

本接口的单用户 QPS 限制为 50 次/秒。超过限制,API 调用将会被限流,这可能会影响您的业务,请合理调用。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

当前API暂无授权信息透出。

请求参数

名称

类型

必填

描述

示例值

MenuContent

string

菜单内容,JSON 格式。具体菜单格式请参见下方 MenuContent 固定菜单语法说明。

{"menu":{"entries":[{"reply":{"displayText":"reply1","postback":{"data":"set_by_chatbot_reply1"}}}]}}

SignName

string

短信签名名称。

阿里云

MenuContent 固定菜单语法说明

固定菜单是 Chatbot 提供给用户的常驻菜单,显示在会话底部,最多支持两级嵌套。

整体结构

{
  "menu": {
    "entries": []
  }
}

entries 中的每一项可以是一个 reply 建议回复、一个 action 建议操作,或一个子菜单 menu。二级菜单中的每一项只能是 reply 或 action,不能再嵌套子菜单。

层级约束

约束说明
最大支持层级2
一级菜单最大数量3,一级菜单项可以直接是 reply 或 action,也可以包含二级子菜单
二级菜单最大数量5

reply 建议回复

用户点击后,向平台发送一条预设的回复消息。

{
  "reply": {
    "displayText": "查看详情",
    "postback": {
      "data": "b3a1f8e2-7c4d-4e9a-bc56-1a2d3f4e5678"
    }
  }
}
字段类型必填说明
displayTextstring按钮显示文字,1~25 字符
postback.datastring回传给平台的业务数据,最长 2000 字符,需全局唯一,建议使用 UUID

action-urlAction 打开网页

用户点击后,在浏览器或应用内 WebView 中打开指定 URL。

{
  "action": {
    "displayText": "打开官网",
    "postback": {
      "data": "c4b2e9f1-8d5a-4f3b-ae67-2b3c4d5e6789"
    },
    "urlAction": {
      "openUrl": {
        "url": "https://www.example.com",
        "application": "browser"
      }
    }
  }
}
字段类型必填说明
displayTextstring按钮显示文字,1~25 字符
postback.datastring回传给平台的业务数据
urlAction.openUrl.urlstring目标网址,支持 http、https 及 App Deep Link,如 weixin://
urlAction.openUrl.applicationstring取值 browser 表示系统浏览器,webview 表示应用内嵌浏览器

action-dialerAction 拨打电话

用户点击后,调起系统拨号界面。

{
  "action": {
    "displayText": "拨打客服",
    "postback": {
      "data": "d5c3f0a2-9e6b-4a4c-bf78-3c4d5e6f7890"
    },
    "dialerAction": {
      "dialPhoneNumber": {
        "phoneNumber": "+8610086"
      }
    }
  }
}
字段类型必填说明
displayTextstring按钮显示文字,1~25 字符
postback.datastring回传给平台的业务数据
dialerAction.dialPhoneNumber.phoneNumberstring电话号码,如+8613800138000 或 10086

子菜单嵌套

通过 menu 对象实现菜单嵌套,每一级子菜单需要提供 displayText 菜单标签和 entries 子项数组。

{
  "menu": {
    "displayText": "更多服务",
    "entries": [
      {
        "reply": {
          "displayText": "套餐查询",
          "postback": { "data": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }
        }
      },
      {
        "action": {
          "displayText": "拨打 10086",
          "postback": { "data": "b2c3d4e5-f6a7-8901-bcde-f12345678901" },
          "dialerAction": {
            "dialPhoneNumber": { "phoneNumber": "10086" }
          }
        }
      }
    ]
  }
}

完整示例

{
  "menu": {
    "entries": [
      {
        "reply": {
          "displayText": "业务咨询",
          "postback": { "data": "e1f2a3b4-c5d6-7890-ef12-345678901234" }
        }
      },
      {
        "menu": {
          "displayText": "更多服务",
          "entries": [
            {
              "reply": {
                "displayText": "套餐查询",
                "postback": { "data": "f2a3b4c5-d6e7-8901-f234-567890123456" }
              }
            },
            {
              "action": {
                "displayText": "拨打客服",
                "postback": { "data": "a3b4c5d6-e7f8-9012-a345-678901234567" },
                "dialerAction": {
                  "dialPhoneNumber": { "phoneNumber": "10086" }
                }
              }
            },
            {
              "action": {
                "displayText": "访问官网",
                "postback": { "data": "b4c5d6e7-f8a9-0123-b456-789012345678" },
                "urlAction": {
                  "openUrl": {
                    "url": "https://www.example.com",
                    "application": "browser"
                  }
                }
              }
            }
          ]
        }
      }
    ]
  }
}

用户点击菜单后的上行回执

用户点击固定菜单中的某一项时,客户端会向平台回传一条 response 消息,其中包含 reply 或 action 之一,字段内容与下行定义完全对应。平台根据 postback.data 的值执行对应业务逻辑。

{
  "response": {
    "reply": {
      "displayText": "业务咨询",
      "postback": { "data": "e1f2a3b4-c5d6-7890-ef12-345678901234" }
    }
  }
}

返回参数

名称

类型

描述

示例值

object

AccessDeniedDetail

string

访问被拒绝时返回的详细信息。

None

RequestId

string

本次请求的 ID。

A90E4451-FED7-49D2-87C8-00700A8C4D0D

Message

string

状态码的描述。

OK

Data

object

返回数据,包含RcsMenuVersion(String)。

{ "RcsMenuVersion": "RCS_MENU_123410123" }

Code

string

请求状态码。返回 OK 代表请求成功。

OK

Success

boolean

是否调用成功。

  • true:调用成功。

  • false:调用失败。

true

示例

正常返回示例

JSON格式

{
  "AccessDeniedDetail": "None",
  "RequestId": "A90E4451-FED7-49D2-87C8-00700A8C4D0D",
  "Message": "OK",
  "Data": {
    "RcsMenuVersion": "RCS_MENU_123410123"
  },
  "Code": "OK",
  "Success": true
}

错误码

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情