Azure 通訊服務 - 進階傳訊事件
本文提供通訊服務進階傳訊事件的屬性和結構描述。 如需事件結構描述的簡介,請參閱 Azure Event Grid 事件結構描述。
事件類型
Azure 通訊服務會發出下列進階傳訊事件類型:
事件類型 | 描述 |
---|---|
Microsoft.Communication.AdvancedMessageReceived | 當通訊服務進階傳訊收到訊息時發佈。 |
Microsoft.Communication.AdvancedMessageDeliveryStatusUpdated | 當通訊服務進階傳訊收到先前所傳送訊息通知的狀態更新時發佈。 |
Microsoft.Communication.AdvancedMessageAnalysisCompleted(預覽) | 當通訊服務使用客戶訊息完成 AI 分析時發布。 |
事件回應
觸發事件時,事件方格服務會將該事件的相關資料傳送至訂閱端點。
本節包含每個事件的資料外觀範例。
Microsoft.Communication.AdvancedMessageReceived event
當通訊服務進階傳訊收到訊息時發佈。
範例案例:WhatsApp 使用者會將 WhatsApp 訊息傳送至 WhatsApp Business 號碼,該號碼會連線到通訊服務資源中的作用中進階傳訊通道。 因此,會發佈含有使用者的 WhatsApp 訊息內容的 Microsoft.Communication.AdvancedMessageReceived
。
屬性清單
Microsoft.Communication.AdvancedMessageReceived
事件特有的屬性詳細資料。
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
channelType | string |
✔️ | 用於傳送訊息之通道的通道類型。 例如 "whatsapp"。 |
寄件者 | string |
✔️ | 傳送訊息的傳送者識別碼。 |
打給 | string |
✔️ | 接收訊息的通道識別碼,其格式為 GUID。 |
receivedTimestamp | DateTimeOffset |
✔️ | 訊息的時間戳。 |
content | string |
✔️ | 訊息中的文字內容。 |
媒體 | MediaContent |
✔️ | 包含所接收媒體的詳細資料。 |
內容 | MessageContext |
✔️ | 包含所接收媒體的詳細資料。 |
按鈕 | ButtonContent |
✔️ | 包含所接收媒體的詳細資料。 |
互動式 | InteractiveContent |
✔️ | 包含所接收媒體的詳細資料。 |
MediaContent
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
mimeType | string |
❌ | 媒體的 MIME 類型。 用於判斷媒體下載的正確檔案類型。 |
id | string |
❌ | 媒體識別碼。 用於擷取媒體進行下載,其格式為 GUID。 |
fileName | string |
✔️ | 上傳時所指定之基礎媒體檔案的檔名。 |
標題 | string |
✔️ | 媒體物件的字幕文字 (如果支援並提供)。 |
MessageContext
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
from | string |
✔️ | 回覆內送訊息之客戶的 WhatsApp 識別碼。 |
id | string |
✔️ | 針對內送回覆所傳送訊息的訊息識別碼。 |
ButtonContent
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
text | string |
✔️ | 按鈕的文字。 |
承載 | string |
✔️ | 使用者所選取按鈕的承載 (由企業設定)。 |
InteractiveContent
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
type | InteractiveReplyType |
✔️ | 互動式內容的類型。 |
buttonReply | InteractiveButtonReplyContent |
✔️ | 在客戶選取按鈕時傳送。 |
listReply | InteractiveListReplyContent |
✔️ | 當客戶從清單中選取項目時傳送。 |
InteractiveReplyType
值 | Description |
---|---|
buttonReply | 此互動式內容是一個按鈕。 |
listReply | 此互動式內容是一個清單。 |
未知 | 此互動式內容不明。 |
InteractiveButtonReplyContent
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
id | string |
✔️ | 按鈕的識別碼。 |
title | string |
✔️ | 按鈕的標題。 |
InteractiveListReplyContent
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
id | string |
✔️ | 所選清單項目的識別碼。 |
title | string |
✔️ | 所選清單項目的標題。 |
description | string |
✔️ | 所選資料列的描述。 |
範例
收到的文字訊息
[{
"id": "00000000-0000-0000-0000-000000000000",
"topic": "/subscriptions/{subscription-id}/resourcegroups/{resourcegroup-name}/providers/microsoft.communication/communicationservices/{communication-services-resource-name}",
"subject": "advancedMessage/sender/{sender@id}/recipient/11111111-1111-1111-1111-111111111111",
"data": {
"content": "Hello",
"channelType": "whatsapp",
"from": "{sender@id}",
"to": "11111111-1111-1111-1111-111111111111",
"receivedTimestamp": "2023-07-06T18:30:19+00:00"
},
"eventType": "Microsoft.Communication.AdvancedMessageReceived",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2023-07-06T18:30:22.1921716Z"
}]
收到的媒體訊息
[{
"id": "00000000-0000-0000-0000-000000000000",
"topic": "/subscriptions/{subscription-id}/resourcegroups/{resourcegroup-name}/providers/microsoft.communication/communicationservices/{communication-services-resource-name}",
"subject": "advancedMessage/sender/{sender@id}/recipient/11111111-1111-1111-1111-111111111111",
"data": {
"channelType": "whatsapp",
"media": {
"mimeType": "image/jpeg",
"id": "22222222-2222-2222-2222-222222222222",
"caption": "This is a media caption"
},
"from": "{sender@id}",
"to": "11111111-1111-1111-1111-111111111111",
"receivedTimestamp": "2023-07-06T18:30:19+00:00"
},
"eventType": "Microsoft.Communication.AdvancedMessageReceived",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2023-07-06T18:30:22.1921716Z"
}]
Microsoft.Communication.AdvancedMessageDeliveryStatusUpdated event
當通訊服務進階傳訊收到先前所傳送訊息通知的狀態更新時發佈。
範例案例:Contoso 使用連線至 WhatsApp Business 帳戶的作用中進階傳訊通道,將 WhatsApp 訊息傳送給 WhatsApp 使用者。 WhatsApp 接著會以先前所傳送訊息的狀態回覆 Contoso 的進階傳訊通道。 因此,會發佈含有訊息狀態的 Microsoft.Communication.AdvancedMessageDeliveryStatusUpdated
事件。
屬性清單
Microsoft.Communication.AdvancedMessageReceived
事件特有的屬性詳細資料。
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
channelType | string |
✔️ | 用於傳送訊息之通道的通道類型。 |
寄件者 | string |
✔️ | 傳送訊息的通道識別碼,其格式為 GUID。 |
打給 | string |
✔️ | 訊息傳送至的收件者識別碼。 |
receivedTimestamp | DateTimeOffset |
✔️ | 訊息的時間戳。 |
messageId | string |
✔️ | 訊息的識別碼,其格式為 GUID。 |
status | string |
✔️ | 訊息狀態。 可能的值包括:Sent 、Delivered 、Read 和 Failed 。 如需詳細資訊,請參閱狀態。 |
error | ChannelEventError |
✔️ | 包含錯誤的詳細資料。 |
ChannelEventError
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
channelCode | string |
✔️ | 在此通道上收到的錯誤碼。 |
channelMessage | string |
✔️ | 在此通道上收到的錯誤訊息。 |
狀態
值 | Description |
---|---|
寄件備份 | 傳訊服務會將訊息傳送給收件者 |
已送達 | 訊息收件者收到訊息 |
參閱 | 訊息收件者讀取訊息 |
失敗 | 訊息無法正確傳送 |
範例
訊息傳遞的更新
[{
"id": "00000000-0000-0000-0000-000000000000",
"topic": "/subscriptions/{subscription-id}/resourcegroups/{resourcegroup-name}/providers/microsoft.communication/communicationservices/{communication-services-resource-name}",
"subject": "advancedMessage/22222222-2222-2222-2222-222222222222/status/Sent",
"data": {
"messageId": "22222222-2222-2222-2222-222222222222",
"status": "Sent",
"channelType": "whatsapp",
"from": "{sender@id}",
"to": "{receiver@id}",
"receivedTimestamp": "2023-07-06T18:42:28+00:00"
},
"eventType": "Microsoft.Communication.AdvancedMessageDeliveryStatusUpdated",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2023-07-06T18:42:28.8454662Z"
}]
訊息傳遞失敗的更新
[{
"id": "00000000-0000-0000-0000-000000000000",
"topic": "/subscriptions/{subscription-id}/resourcegroups/{resourcegroup-name}/providers/microsoft.communication/communicationservices/acsxplatmsg-test",
"subject": "advancedMessage/22222222-2222-2222-2222-222222222222/status/Failed",
"data": {
"messageId": "22222222-2222-2222-2222-222222222222",
"status": "Failed",
"channelType": "whatsapp",
"from": "{sender@id}",
"to": "{receiver@id}",
"receivedTimestamp": "2023-07-06T18:42:28+00:00",
"error": {
"channelCode": "131026",
"channelMessage": "Message Undeliverable."
}
},
"eventType": "Microsoft.Communication.AdvancedMessageDeliveryStatusUpdated",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2023-07-06T18:42:28.8454662Z"
}]
Microsoft.Communication.AdvancedMessageAnalysisCompleted(預覽) 事件
當通訊服務使用客戶訊息完成 AI 分析時發布。
範例案例:WhatsApp 使用者會將 WhatsApp 訊息傳送至 WhatsApp 商務號碼,該號碼會連線至已選擇加入訊息分析功能的通訊服務資源中作用中的進階傳訊通道。 因此,會發佈Microsoft.Communication.AdvancedMessageAnalysisCompleted,並分析使用者的 WhatsApp 訊息。
屬性清單
Microsoft.Communication.AdvancedMessageAnalysisCompleted
事件特有的屬性詳細資料。
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
channelType | string |
✔️ | 用於傳送訊息之通道的通道類型。 |
寄件者 | string |
✔️ | 傳送訊息的通道識別碼,其格式為 GUID。 |
打給 | string |
✔️ | 訊息傳送至的收件者識別碼。 |
receivedTimestamp | DateTimeOffset |
✔️ | 訊息的時間戳。 |
originalMessage | string |
✔️ | 原始使用者訊息。 |
intentAnalysis | string |
✔️ | 已接收使用者訊息的意圖分析。 |
languageDetection | LanguageDetection |
✔️ | 包含所接收使用者訊息的語言偵測。 |
extractedKeyPhrases | List<string> |
✔️ | 包含已接收使用者訊息的關鍵片語。 |
LanguageDetection
屬性 | 類型 | Nullable | 描述 |
---|---|---|---|
語言 | string |
✔️ | 偵測到的語言。 |
confidenceScore | float |
✔️ | 偵測到之語言的信賴分數。 |
翻譯 | string |
✔️ | 訊息轉譯。 |
範例
訊息分析已完成
[{
"id": "df1c2d92-6155-4ad7-a865-cb8497106c52",
"topic": "/subscriptions/{subscription-id}/resourcegroups/{resourcegroup-name}/providers/microsoft.communication/communicationservices/acsxplatmsg-test",
"subject": "advancedMessage/sender/{sender@id}/recipient/00000000-0000-0000-0000-000000000000",
"data": {
"originalMessage": "Hello, could u help me order some flowers for Mother’s Day?",
"channelType": "whatsapp",
"languageDetection": {
"language": "English",
"confidenceScore": 0.99
},
"intentAnalysis": "Order request: The customer is contacting customer service to request assistance with ordering flowers for Mother's Day.",
"extractedKeyPhrases": [
"order",
"flowers",
"Mother's Day"
],
"from": "{sender@id}",
"to": "00000000-0000-0000-0000-000000000000",
"receivedTimestamp": "2024-07-05T19:10:35.28+00:00"
},
"eventType": "Microsoft.Communication.AdvancedMessageAnalysisCompleted",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2024-07-05T19:10:35.2806524Z"
}]
快速入門
如需快速入門,了解如何使用 Webhook 訂閱進階傳訊事件,請參閱快速入門:處理進階傳訊事件。