1 message消息結構說明
1.1 message 卡片消息 數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
message | json | 必須 | 無 | 卡片消息,數(shù)據(jù)結構請參考1.2單卡片說明和1.3多卡片說明 |
1.2 單卡片消息數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
generalPurposeCard | json | 必須 | 無 | 單卡片消息結構,見下方1.2.1 |
1.2.1 generalPurposeCard數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
content | json | 必須 | 無 | 卡片內容,見下方1.2.2 單卡片content消息結構說明 |
layout | json | 必須 | 無 | 卡片樣式,見下方1.2.3 單卡片layout數(shù)據(jù)結構說明 |
1.2.2 單卡片content數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
title | string | 必須 | 無 | 卡片標題,最大長度200個字節(jié) |
description | string | 必須 | 無 | 文字描述,最大長度2000個字節(jié) |
media | json | 必須 | 無 | 素材數(shù)據(jù),見下方1.2.4 media數(shù)據(jù)結構說明 |
suggestions | json array | 可選 | 無 | 卡片菜單,數(shù)據(jù)結構請參考1.4 suggestions數(shù)據(jù)結構 |
1.2.3 單卡片layout數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
cardOrientation | enum | 必須 | 無 | 可選值包括:VERTICAL :垂直HORIZONTAL :水平 |
imageAlignment | enum | 條件參數(shù) | 無 | 排列方式,當cardOrientation 為HORIZONTAL ,該參數(shù)為必須參數(shù),可選值包括:LEFT :左對齊RIGHT :右對齊 |
titleFontStyle | enum | 可選 | 無 | 卡片標題樣式,可多選,可選值包括:italics :斜體bold :粗體underline :下劃線 |
descriptionFontStyle | enum | 可選 | 無 | 文字描述樣式,可多選,可選值包括:italics :斜體bold :粗體<br/>underline :下劃線 |
style | string | 可選 | 無 | css樣式表鏈接,描述見附錄 |
1.2.4 media數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
mediaUrl | string | 必須 | 無 | 圖片地址 |
mediaContentType | string | 必須 | 無 | 圖片類型,示例:image/png |
mediaFileSize | int | 必須 | 無 | 圖片大小 |
height | enum | 必須 | 無 | 圖片高度,可選值包括:SHORT_HEIGHT :小圖MEDIUM_HEIGHT :中圖TALL_HEIGHT :大圖 |
thumbnailUrl | string | 可選 | 無 | 縮略圖地址縮略圖存在時,此參數(shù)必須 |
thumbnailContentType | string | 可選 | 無 | 縮略圖類型,縮略圖存在時,此參數(shù)必須,示例:image/png |
thumbnailFileSize | int | 必須 | 無 | 縮略片大小,縮略圖存在時,此參數(shù)必須, |
contentDescription | string | 可選 | 無 | 卡片描述,最大支持長度200字節(jié) 注:描述文本為屏幕閱讀器可訪問,不會顯示在屏幕上 |
1.2.5 數(shù)據(jù)示例
{
"message": {
"generalPurposeCard": {
"content": {
"description": "這是卡片正文",
"media": {
"height": "MEDIUM_HEIGHT",
"mediaContentType": "image/png",
"mediaFileSize": "1259515",
"mediaUrl": "https://ftnj01.xnq.r.10086.cn:10099/s/003032024040311atT7rLLdSyn050FD.png"
},
"suggestions": [{
"action": {
"displayText": "打開鏈接(內置瀏覽器)",
"postback": {
"data": "open_url_internal"
},
"urlAction": {
"openUrl": {
"application": "webview",
"url": "https://rcs.10086.cn/"
}
}
}
},
{
"action": {
"displayText": "打開鏈接(默認瀏覽器)",
"postback": {
"data": "open_url_browser"
},
"urlAction": {
"openUrl": {
"application": "browser",
"url": "https://rcs.10086.cn/"
}
}
}
},
{
"action": {
"mapAction": {
"requestLocationPush": {}
},
"displayText": "上報當前位置",
"postback": {
"data": "set_by_chatbot_request_location_push"
}
}
}
],
"title": "這是卡片標題"
},
"layout": {
"cardOrientation": "VERTICAL",
"imageAlignment": "LEFT"
}
}
}
}
1.3 多卡片消息數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
generalPurposeCardCarousel | json | 必須 | 無 | 多卡片消息結構,見下方1.3.1 |
1.3.1 generalPurposeCardCarousel多卡片消息結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
content | json array | 必須 | 無 | 多卡片內容,最小2個卡片,最多支持12個卡片,見下方1.3.2 多卡片content消息結構說明 |
layout | json | 必須 | 無 | 卡片樣式,見下方1.3.3 多卡片layout數(shù)據(jù)結構說明 |
1.3.2 多卡片content數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
title | string | 必須 | 無 | 卡片標題,最大長度200個字節(jié) |
description | string | 必須 | 無 | 文字描述,最大長度2000個字節(jié) |
media | json | 必須 | 無 | 素材數(shù)據(jù),見下方1.2.4 media數(shù)據(jù)結構說明 |
suggestions | json array | 可選 | 無 | 卡片菜單,最小一個,最大四個,數(shù)據(jù)結構請參考1.4 suggestions數(shù)據(jù)結構 |
1.3.3 多卡片layout數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
cardWidth | enum | 必須 | 無 | 可選值包括:SMALL_WIDTH :小圖MEDIUM_WIDTH :中等 |
titleFontStyle | enum | 可選 | 無 | 卡片標題樣式,可多選,可選值包括:italics :斜體bold :粗體underline :下劃線 |
descriptionFontStyle | enum | 可選 | 無 | 文字描述樣式,可多選,可選值包括:italics :斜體bold :粗體underline :下劃線 |
style | string | 可選 | 無 | css樣式表鏈接,描述見附錄 |
1.3.4 數(shù)據(jù)示例
{
"message": {
"generalPurposeCardCarousel": {
"layout": {
"cardWidth": "MEDIUM_WIDTH"
},
"content": [{
"media": {
"mediaUrl": "https://ftjn01.xnq.r.10086.cn:10099/s/0110120430804161p1FVZ0sZHk027FD.gif",
"mediaContentType": "image/gif",
"mediaFileSize": "209484",
"height": "MEDIUM_HEIGHT",
"thumbnailUrl": "https://ftjn01.xnq.r.10086.cn:10099/s/0110120430804161p1FVZ0sZHk027TD",
"thumbnailContentType": "image/jpeg",
"thumbnailFileSize": "9431"
},
"title": "這是卡片1標題",
"description": "這是卡片1正文內容……",
"suggestions": [{
"reply": {
"displayText": "上行YES",
"postback": {
"data": "YES"
}
}
}, {
"action": {
"displayText": "打開鏈接",
"postback": {
"data": "1536309460312657920"
},
"urlAction": {
"openUrl": {
"url": "https://rcs.10086.cn/",
"application": "browser"
}
}
}
}]
}, {
"media": {
"mediaUrl": "https://ftjn01.xnq.r.10086.cn:10099/s/0110120430804161p1FVZ0sZHk027FD.gif",
"mediaContentType": "image/gif",
"mediaFileSize": "209484",
"height": "MEDIUM_HEIGHT",
"thumbnailUrl": "https://ftjn01.xnq.r.10086.cn:10099/s/0110120430804161p1FVZ0sZHk027TD",
"thumbnailContentType": "image/jpeg",
"thumbnailFileSize": "9431"
},
"title": "這是卡片2標題",
"description": "這是卡片2正文內容……",
"suggestions": [{
"reply": {
"displayText": "上行NO",
"postback": {
"data": "1536309659126861824"
}
}
}, {
"action": {
"displayText": "撥打10086",
"postback": {
"data": "1536309578193571840"
},
"dialerAction": {
"dialPhoneNumber": {
"phoneNumber": "10086"
}
}
}
}]
}]
}
}
}
1.4 suggestions數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
reply | json string | 可選 | 無 | 上行回復消息,數(shù)據(jù)結構請參考1.4.1 reply數(shù)據(jù)結構 |
action | json string | 可選 | 無 | 攜帶手機操作的上行回復消息,數(shù)據(jù)結構請參考2 action事件數(shù)據(jù)結構說明 |
1.4.1 action數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
displayText | string | 必須 | 無 | 上行文本,最大長度25個字節(jié) |
postback | json | 必須 | 無 | 上行文本攜帶的數(shù)據(jù)標識,數(shù)據(jù)結構請參考1.4.2 postback數(shù)據(jù)結構 |
1.4.2 postback數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
data | string | 必須 | 無 | 上行文本標識,建議使用UUID |
1.4.3 數(shù)據(jù)示例
[{
"reply": {
"displayText": "上行NO",
"postback": {
"data": "1536309659126861824"
}
}
}, {
"action": {
"displayText": "撥打10086",
"postback": {
"data": "1536309578193571840"
},
"dialerAction": {
"dialPhoneNumber": {
"phoneNumber": "10086"
}
}
}
}]
2 action 事件數(shù)據(jù)結構說明
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
displayText | string | 必須 | 無 | 按鈕文本,最大長度25個字節(jié) |
postback | json | 必須 | 無 | 按鈕文本攜帶的數(shù)據(jù)標識,數(shù)據(jù)結構請參考1.9 postback數(shù)據(jù)結構 |
urlAction | json | 可選 | 無 | 鏈接事件,具體數(shù)據(jù)結構請參考2.1 |
dialerAction | json | 可選 | 無 | 撥號事件,具體數(shù)據(jù)結構請參考2.2 |
mapAction | json | 可選 | 無 | 地圖事件,具體數(shù)據(jù)結構請參考2.3 |
calendarAction | json | 可選 | 無 | 日歷事件,具體數(shù)據(jù)結構請參考2.4 |
composeAction | json | 可選 | 無 | 草稿事件,具體數(shù)據(jù)結構請參考2.5 |
deviceAction | json | 可選 | 無 | 設備事件,具體數(shù)據(jù)結構請參考2.6 |
settingsAction | json | 可選 | 無 | 應用事件,具體數(shù)據(jù)結構請參考2.7 |
2.1 urlAction 鏈接事件
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
openUrl | json | 必須 | 無 | 鏈接事件,數(shù)據(jù)結構請參考2.1.1 openUrl數(shù)據(jù)結構 |
2.1.1 openUrl數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
url | string | 必須 | 無 | 鏈接地址 |
application | enum | 必須 | 無 | 瀏覽器類型,可選值:browser :內置瀏覽器webview :默認瀏覽器 |
viewMode | enum | 條件參數(shù) | full | application 為webview 可用,可選值:full :全屏half :半屏tall :浮動 |
parameters | string | 條件參數(shù) | 無 | application 為webview 可用,最大長度200個字節(jié) |
2.1.2 數(shù)據(jù)示例
{
"openUrl": {
"application": "webview",
"url": "http://www.reatop.cn",
"viewMode": "full",
"parameters": "visitorId=10001&code=123456"
}
}
2.2 dialerAction 撥號事件
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
dialPhoneNumber | json | 可選 | 無 | 通話事件,數(shù)據(jù)結構請參考2.2.1 dialPhoneNumber數(shù)據(jù)結構 |
dialEnrichedCall | json | 可選 | 無 | 增強通話事件,數(shù)據(jù)結構請參考2.2.2 dialEnrichedCall數(shù)據(jù)結構 |
dialVideoCall | json | 可選 | 視頻通話,數(shù)據(jù)結構請參考2.2.3 dialVideoCall數(shù)據(jù)結構 |
2.2.1 dialPhoneNumber數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
phoneNumber | string | 必須 | 無 | 要通話的號碼,比如15288888888 |
fallbackUrl | string | 可選 | 無 | 話單推送地址 |
2.2.2 dialEnrichedCall數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
phoneNumber | string | 必須 | 無 | 要通話的號碼,比如15288888888 |
subject | string | 可選 | 無 | |
fallbackUrl | string | 可選 | 無 | 話單推送地址 |
2.2.3 dialVideoCall數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
phoneNumber | string | 必須 | 無 | 要通話的號碼,比如15288888888 |
fallbackUrl | string | 可選 | 無 | 話單推送地址 |
2.2.4 數(shù)據(jù)示例
{
"dialPhoneNumber": {
"phoneNumber": "15288888888"
}
}
2.3 mapAction 地圖事件
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
showLocation | json | 二選一 | 無 | 在地圖上顯示給定位置,數(shù)據(jù)結構請參考 2.3.1 showLocation數(shù)據(jù)結構 |
requestLocationPush | json | 二選一 | 無 | 一次從UE發(fā)送地理位置推送到的請求聊天機器人,數(shù)據(jù)結構參考 2.3.2 requestLocationPush數(shù)據(jù)結構 |
2.3.1 showLocation 數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
location | json | 必須 | 無 | 地理位置,數(shù)據(jù)結構請參考2.3.3 location數(shù)據(jù)結構 |
fallbackUrl | json | 可選 | 無 | 消息推送地址 |
2.3.2 requestLocationPush 數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
showLocation | json | 二選一 | 無 | 在地圖上顯示給定位置,數(shù)據(jù)結構參考 2.3.1 showLocation數(shù)據(jù)結構 |
requestLocationPush | json | 二選一 | 無 | 一次從UE發(fā)送地理位置推送到的請求聊天機器人,數(shù)據(jù)結構暫無 |
2.3.3 location 數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
latitude | float | 與query 二選一 | 無 | 緯度,示例:23.170408552888855 |
longitude | float | 與query 二選一 | 無 | 經度,示例:113.40224851582335 |
label | string | 可選 | 無 | 標簽,最大長度100個字節(jié) |
query | string | 與latitude ,longitude 二選一 | 無 | 基于用戶位置的位置進行搜索,示例:GSMA Head Office, 25 Walbrook, London, UK。最大長度200個字節(jié) |
2.3.4 數(shù)據(jù)示例
{
"showLocation": {
"location": {
"latitude": 23.170408552888855,
"longitude": 113.40224851582335,
"label": "中國移動南方基地智匯中心"
},
"fallbackUrl": "https://j.map.baidu.com/eb/XWkf"
}
}
2.4 calendarAction 日歷事件
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
createCalendarEvent | json | 必須 | 無 | 日歷事件,消息結構請駕考2.4.1 createCalendarEvent數(shù)據(jù)結構 |
2.4.1 createCalendarEvent數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
startTime | string | 必須 | 無 | 開始時間,示例:2024-04-14T00:00:00Z |
endTime | string | 必須 | 無 | 結束時間,示例:2024-04-14T23:59:59Z |
title | string | 必須 | 無 | 提醒主題,最大長度100個字節(jié),示例:會議提醒 |
description | string | 可選 | 無 | 提醒描述,最大長度500個字節(jié) |
fallbackUrl | string | 可選 | 無 | 回落地址 |
2.4.2 數(shù)據(jù)示例
{
"createCalendarEvent": {
"startTime": "2024-04-14T00:00:00Z",
"endTime": "2024-04-14T23:59:59Z",
"title": "會議提醒",
"description": "下午3點公司會議"
}
}
2.5 composeAction 編寫消息草稿事件
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
composeTextMessage | json | 二選一 | 無 | 編寫文字短信,數(shù)據(jù)結構請參考2.5.1 composeTextMessage數(shù)據(jù)結構 |
composeRecordingMessage | json | 二選一 | 無 | 錄制多媒體信息,數(shù)據(jù)結構請參考2.5.2 composeRecordingMessage數(shù)據(jù)結構 |
2.5.1 composeTextMessage數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
phoneNumber | string | 必須 | 無 | 接收方號碼 |
text | string | 必須 | 無 | 短信內容,最長支持100個字節(jié) |
2.5.2 composeRecordingMessage數(shù)據(jù)結構
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
phoneNumber | string | 必須 | 無 | 接收方號碼 |
type | enum | 必須 | 無 | 多媒體信息類型,可選值包括:AUDIO :語音消息VIDEO :視頻消息 |
2.5.3 數(shù)據(jù)示例
暫無
2.6 deviceAction 與設備交互事件
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
requestDeviceSpecifics | json | 必須 | 無 | 請求有關用戶設備的詳細信息。數(shù)據(jù)結構暫無 |
2.7 settingsAction 與應用設備進行交互的事件
參數(shù) | 類型 | 必須/可選 | 默認 | 描述 |
---|---|---|---|---|
disableAnonymization | json | 二選一 | 無 | 要求用戶禁用匿名設置。數(shù)據(jù)結構暫無 |
enableDisplayedNotifications | json | 二選一 | 無 | 要求用戶啟用發(fā)送顯示通知。數(shù)據(jù)結構暫無 |
附錄:富媒體卡片支持的 CSS 屬性說明
富媒體卡片的 CSS 控制元素包含以下四種:
1.整個富媒體卡片,與 CSS 中的消息選擇器一起引用
2.富媒體卡片標題,與 CSS 中的 message.content.Title 選擇器一起引用
3.富媒體卡片描述,與 CSS 中的 message.content.description 選擇器一起引用
4.富媒體卡片建議,與 CSS 中的 message.content.suggestions 選擇器一起引用
富媒體卡片支持的 CSS 選擇器和屬性如下表所示:
CSS選擇器 | 選擇器支持的CSS屬性 | CSS屬性和CSS屬性支持值的描述 |
---|---|---|
message | color | 富媒體卡片中所有文本內容的顏色 |
message | font | 富媒體卡片中所有元素的文本內容的字體 |
message | text-align | 富卡中所有元素文本內容的對齊方式 |
message | background-color | 富媒體卡片的背景顏色,默認值為transparent |
message | background-image | 富媒體卡片的背景圖片。通過圖片 URI 來指定圖片,當不使用背景圖片時,采用‘none’默認值。當背景圖片不可用時,將采用背景色。當圖片可用時,它將在背景色之上渲染。 |
message.content.title | color | title 元素文本內容的顏色,未指定時,它可以從 message 元素繼承。 |
message.content.title | font | title 元素文本內容的字體,未指定時,從 message 元素繼承。 |
message.content.title | text-align | title 元素文本內容的對齊方式,未指定時,從 message 元素繼承。 |
message.content.description | color | description 元素文本內容的顏色,未指定時,從 message 元素繼承。 |
message.content.description | font | description 元素文本內容的字體,未指定時,從 message 元素繼承。 |
message.content.description | text-align | description 元素文本內容的對齊方式,未指定時,從 message 元素繼承。 |
message.content.suggestions | color | suggestions 元素的文本內容的顏色,如果沒指定,則從 message 元素繼承。 |
message.content.suggestions | font | suggestions 元素文本內容的字體,未指定時,從 message 元素繼承。 |
message.content.suggestions | text-align | suggestions 元素文本內容的對齊方式。該值參考[CSS2.1]。未指定時,從 message 元素繼承。 |
示例:
@charset "utf-8";
/* CSS Document */
Message {
text-align:center;
font-size:12px;
color:#555;
font-family:Verdana, Arial, Helvetica, sans-serif;
background-color: green;
}
message.content.title {
font-size:14px;
font-weight:bold;
color:#666699
}
message.content.description {
color:#666699
}
message.content.suggestions {
color:#669999
}