Azure Communication Services — zaawansowane zdarzenia obsługi komunikatów
Ten artykuł zawiera właściwości i schemat zdarzeń zaawansowanej obsługi komunikatów usług komunikacyjnych. Aby zapoznać się ze schematami zdarzeń, zobacz Schemat zdarzeń usługi Azure Event Grid.
Typy zdarzeń
Usługi Azure Communication Services emitują następujące zaawansowane typy zdarzeń obsługi komunikatów:
Typ zdarzenia | opis |
---|---|
Microsoft.Communication.AdvancedMessageReceived | Opublikowane, gdy usługa Communication Services Advanced Messaging odbiera komunikat. |
Microsoft.Communication.AdvancedMessageDeliveryStatusUpdated | Opublikowane, gdy zaawansowane komunikaty usług komunikacyjnych odbierają aktualizację stanu dla wcześniej wysłanego powiadomienia o wiadomościach. |
Microsoft.Communication.AdvancedMessageAnalysisCompleted(wersja zapoznawcza) | Opublikowane po zakończeniu analizy sztucznej inteligencji za pomocą komunikatu klienta. |
Odpowiedzi na zdarzenia
Po wyzwoleniu zdarzenia usługa Event Grid wysyła dane dotyczące tego zdarzenia do subskrybowania punktów końcowych.
Ta sekcja zawiera przykład tego, jak te dane będą wyglądać dla każdego zdarzenia.
Zdarzenie Microsoft.Communication.AdvancedMessageReceived
Opublikowane, gdy usługa Communication Services Advanced Messaging odbiera komunikat.
Przykładowy scenariusz: Użytkownik WhatsApp wysyła wiadomość WhatsApp do numeru WhatsApp Business, który jest połączony z aktywnym kanałem Advanced Messaging w zasobie usług komunikacyjnych. W rezultacie Microsoft.Communication.AdvancedMessageReceived
opublikowano zawartość wiadomości WhatsApp użytkownika.
Lista atrybutów
Szczegóły atrybutów specyficznych dla Microsoft.Communication.AdvancedMessageReceived
zdarzeń.
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
channelType | string |
✔️ | Typ kanału, na który wysłano wiadomość. Np. "whatsapp". |
z | string |
✔️ | Identyfikator nadawcy, który wysłał wiadomość. |
na wartość | string |
✔️ | Identyfikator kanału, który odebrał komunikat, sformatowany jako identyfikator GUID. |
receivedTimestamp | DateTimeOffset |
✔️ | Sygnatura czasowa wiadomości. |
content | string |
✔️ | Zawartość tekstowa w wiadomości. |
nośnik | MediaContent |
✔️ | Zawiera szczegółowe informacje o odebranych nośnikach. |
kontekst | MessageContext |
✔️ | Zawiera szczegółowe informacje o odebranych nośnikach. |
guzik | ButtonContent |
✔️ | Zawiera szczegółowe informacje o odebranych nośnikach. |
interactive | InteractiveContent |
✔️ | Zawiera szczegółowe informacje o odebranych nośnikach. |
MediaContent
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
mimeType | string |
❌ | Typ MIME nośnika. Służy do określania prawidłowego typu pliku dla pobierania multimediów. |
identyfikator | string |
❌ | Identyfikator nośnika. Służy do pobierania nośnika do pobrania, sformatowanego jako identyfikator GUID. |
fileName | string |
✔️ | Nazwa pliku źródłowego nośnika określona podczas przekazywania. |
podpis | string |
✔️ | Tekst podpisu dla obiektu nośnika, jeśli jest obsługiwany i podany. |
MessageContext
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
z | string |
✔️ | Identyfikator WhatsApp dla klienta, który odpowiedział na wiadomość przychodzącą. |
identyfikator | string |
✔️ | Identyfikator wiadomości dla wysłanej wiadomości dla odpowiedzi przychodzącej. |
ButtonContent
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
text | string |
✔️ | Tekst przycisku. |
payload | string |
✔️ | Ładunek skonfigurowany przez firmę przycisku wybranego przez użytkownika. |
InteractiveContent
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
type | InteractiveReplyType |
✔️ | Typ zawartości interakcyjnej. |
buttonReply | InteractiveButtonReplyContent |
✔️ | Wysłane, gdy klient wybierze przycisk. |
listReply | InteractiveListReplyContent |
✔️ | Wysłane, gdy klient wybierze element z listy. |
InteractiveReplyType
Wartość | Opis |
---|---|
buttonReply | Zawartość interaktywna to przycisk. |
listReply | Zawartość interaktywna to lista. |
nieznane | Zawartość interaktywna jest nieznana. |
InteractiveButtonReplyContent
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
identyfikator | string |
✔️ | Identyfikator przycisku. |
title | string |
✔️ | Tytuł przycisku. |
InteractiveListReplyContent
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
identyfikator | string |
✔️ | Identyfikator wybranego elementu listy. |
title | string |
✔️ | Tytuł wybranego elementu listy. |
opis | string |
✔️ | Opis wybranego wiersza. |
Przykłady
Odebrano wiadomość SMS
[{
"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"
}]
Odebrano wiadomość medialną
[{
"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"
}]
Zdarzenie Microsoft.Communication.AdvancedMessageDeliveryStatusUpdated
Opublikowane, gdy zaawansowane komunikaty usług komunikacyjnych odbierają aktualizację stanu dla wcześniej wysłanego powiadomienia o wiadomościach.
Przykładowy scenariusz: Firma Contoso używa aktywnego kanału Advanced Messaging połączonego z kontem WhatsApp Business, aby wysłać wiadomość WhatsApp do użytkownika WhatsApp. Następnie WhatsApp odpowiada na kanał Advanced Messaging firmy Contoso ze stanem wcześniej wysłanej wiadomości. W związku z tym Microsoft.Communication.AdvancedMessageDeliveryStatusUpdated
zdarzenie zawierające stan komunikatu jest publikowane.
Lista atrybutów
Szczegóły atrybutów specyficznych dla Microsoft.Communication.AdvancedMessageReceived
zdarzeń.
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
channelType | string |
✔️ | Typ kanału, na który wysłano wiadomość. |
z | string |
✔️ | Identyfikator kanału, który wysłał komunikat, sformatowany jako identyfikator GUID. |
na wartość | string |
✔️ | Identyfikator adresata, do którego wysłano wiadomość. |
receivedTimestamp | DateTimeOffset |
✔️ | Sygnatura czasowa wiadomości. |
messageId | string |
✔️ | Identyfikator komunikatu sformatowany jako identyfikator GUID. |
status | string |
✔️ | Stan wiadomości. Możliwe wartości to Sent , , Read Delivered i Failed . Aby uzyskać więcej informacji, zobacz Stan. |
error | ChannelEventError |
✔️ | Zawiera szczegóły błędu. |
ChannelEventError
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
channelCode | string |
✔️ | Kod błędu odebrany w tym kanale. |
channelMessage | string |
✔️ | Komunikat o błędzie odebrany w tym kanale. |
Stan
Wartość | Opis |
---|---|
Wysłany | Usługa obsługi komunikatów wysłała wiadomość do adresata |
Dostarczenia | Odbiorca wiadomości odebrał wiadomość |
Przeczytaj | Odbiorca wiadomości odczytał wiadomość |
Niepowodzenie | Komunikat nie może wysłać poprawnie |
Przykłady
Aktualizacja dostarczania komunikatów
[{
"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"
}]
Aktualizacja dostarczania komunikatów z powodu błędu
[{
"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"
}]
Zdarzenie Microsoft.Communication.AdvancedMessageAnalysisCompleted(wersja zapoznawcza)
Opublikowane po zakończeniu analizy sztucznej inteligencji za pomocą komunikatu klienta.
Przykładowy scenariusz: Użytkownik WhatsApp wysyła wiadomość WhatsApp do numeru WhatsApp Business, który jest połączony z aktywnym kanałem Advanced Messaging w zasobie usług komunikacyjnych, który zdecydował się na funkcję Analizy wiadomości. W rezultacie opublikowano komunikat Microsoft.Communication.AdvancedMessageAnalysisCompleted z analizą wiadomości WhatsApp użytkownika.
Lista atrybutów
Szczegóły atrybutów specyficznych dla Microsoft.Communication.AdvancedMessageAnalysisCompleted
zdarzeń.
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
channelType | string |
✔️ | Typ kanału, na który wysłano wiadomość. |
z | string |
✔️ | Identyfikator kanału, który wysłał komunikat, sformatowany jako identyfikator GUID. |
na wartość | string |
✔️ | Identyfikator adresata, do którego wysłano wiadomość. |
receivedTimestamp | DateTimeOffset |
✔️ | Sygnatura czasowa wiadomości. |
originalMessage | string |
✔️ | Oryginalna wiadomość użytkownika. |
intentAnalysis | string |
✔️ | Analiza intencji odebranego komunikatu użytkownika. |
languageDetection | LanguageDetection |
✔️ | Zawiera wykrywanie języka odebranego komunikatu użytkownika. |
extractedKeyPhrases | List<string> |
✔️ | Zawiera kluczowe frazy odebranego komunikatu użytkownika. |
LanguageDetection
Atrybut | Typ | Możliwa wartość Null | opis |
---|---|---|---|
język | string |
✔️ | Wykryto język. |
confidenceScore | float |
✔️ | Wykryto współczynnik ufności języka. |
tłumaczenie | string |
✔️ | Tłumaczenie wiadomości. |
Przykłady
Analiza komunikatów została ukończona
[{
"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"
}]
Szybki start
Aby zapoznać się z przewodnikiem Szybki start pokazującym, jak subskrybować zdarzenia zaawansowane obsługi komunikatów przy użyciu elementów webhook, zobacz Szybki start: obsługa zaawansowanych zdarzeń obsługi komunikatów.