Quickstart: Sms ontvangen en beantwoorden
Azure Communication Services sms-mogelijkheden bieden ontwikkelaars opties om ontvangen sms-gebeurtenissen te gebruiken. De gebeurtenissen worden geplaatst in Azure Event Grid die standaard integraties biedt voor het verwerken van webhooks, Azure Functions, Power Automate/Logic App-connectors en meer.
Na ontvangst kunnen sms-berichten worden verwerkt om erop te reageren of om ze gewoon te registreren bij een database voor toekomstige toegang.
In deze quickstart richten we ons op het weergeven van de verwerking van sms-ontvangen gebeurtenissen via Azure Functions met behulp van Event Grid-triggers en connectors zonder code voor Power Automate/Logic Apps.
De SMSReceived
gebeurtenis die wordt gegenereerd wanneer een sms naar een Azure Communication Services telefoonnummer wordt verzonden, wordt op de volgende manier opgemaakt:
[{
"id": "Incoming_20200918002745d29ebbea-3341-4466-9690-0a03af35228e",
"topic": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/acse2e/providers/microsoft.communication/communicationservices/{communication-services-resource-name}",
"subject": "/phonenumber/15555555555",
"data": {
"MessageId": "Incoming_20200918002745d29ebbea-3341-4466-9690-0a03af35228e",
"From": "15555555555",
"To": "15555555555",
"Message": "Great to connect with Azure Communication Services events",
"ReceivedTimestamp": "2020-09-18T00:27:45.32Z"
},
"eventType": "Microsoft.Communication.SMSReceived",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2020-09-18T00:27:47Z"
}]
Om te beginnen met het genereren van de gebeurtenissen, moeten we Azure Event Grid configureren voor onze Azure Communication Services resource.
Notitie
Voor het gebruik van Azure Event Grid worden extra kosten in rekening gebracht. Zie Azure Event Grid prijzen voor meer informatie.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een actieve Communication Services-resource en verbindingsreeks. Een Communication Services-resource maken.
- Een telefoonnummer met sms-functionaliteit. Een telefoonnummer aanvragen.
- Schakel Event Grid-resource voor uw abonnement in. Zie de instructies.
Event Grid biedt out-of-the-box ondersteuning voor Azure Functions, waardoor u eenvoudig een gebeurtenislistener kunt instellen zonder dat u te maken hoeft te hebben met de complexiteit van het parseren van headers of foutopsporing van webhooks. Met behulp van de out-of-the-box-trigger kunnen we een Azure-functie instellen die wordt uitgevoerd telkens wanneer een gebeurtenis wordt gedetecteerd die overeenkomt met de trigger. In dit document richten we ons op ontvangen sms-triggers.
Onze lokale omgeving instellen
Installeer de Azure Functions-extensie met behulp van Visual Studio Code.
Maak met de extensie een Azure-functie volgens deze instructies.
Configureer de functie met de volgende instructies:
- Taal: TypeScript
- Sjabloon: Azure Event Grid-trigger
- Functienaam: Door de gebruiker gedefinieerd
Zodra u deze hebt gemaakt, ziet u een functie die als volgt in uw directory is gemaakt:
import { AzureFunction, Context } from "@azure/functions" const eventGridTrigger: AzureFunction = async function (context: Context, eventGridEvent: any): Promise<void> { context.log(eventGridEvent); }; export default eventGridTrigger;
Azure Function configureren voor het ontvangen van sms-gebeurtenissen
Configureer Azure Function om waarden van de gebeurtenis te parseren, zoals wie de gebeurtenis heeft verzonden, naar welk nummer en wat het bericht was.
import { AzureFunction, Context } from "@azure/functions" const eventGridTrigger: AzureFunction = async function (context: Context, eventGridEvent: any): Promise<void> { context.log(eventGridEvent); const to = eventGridEvent['data']['to']; const from = eventGridEvent['data']['from']; const message = eventGridEvent['data']['message']; }; export default eventGridTrigger;
Op dit moment hebt u het ontvangen van een sms via gebeurtenissen afgehandeld. Nu variëren de mogelijkheden van wat u met die gebeurtenis moet doen, van het registreren van de gebeurtenis tot het reageren erop. In de volgende sectie richten we ons op het reageren op de sms die we hebben ontvangen. Als u niet wilt reageren op het sms-bericht, gaat u verder met de volgende sectie over het lokaal uitvoeren van de functie.
Reageren op de sms
- Om te reageren op de binnenkomende sms gebruiken we de sms-mogelijkheden van Azure Communication Service voor het verzenden van sms. We beginnen met het aanroepen van de
SmsClient
en initialiseren deze met deconnection string
voor onze resource. U kunt de connection string rechtstreeks in de code plakken of in het bestand local.settings.json in uw Azure Function-map onder waarden plaatsen.
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "node",
"ACS_CONNECTION_STRING": "<<CONNECTION STRING>>"
}
}
Vervolgens stellen we een sms op om te verzenden op basis van de
to
en-waardenfrom
van de gebeurtenis die we hebben ontvangen.import { AzureFunction, Context } from "@azure/functions" import { SmsClient } from "@azure/communication-sms"; const connectionString = process.env.ACS_CONNECTION_STRING; //Replace with your connection string const eventGridTrigger: AzureFunction = async function (context: Context, eventGridEvent: any): Promise<void> { context.log(eventGridEvent); const to = eventGridEvent['data']['to']; const from = eventGridEvent['data']['from']; const message = eventGridEvent['data']['message']; const smsClient = new SmsClient(connectionString); const sendResults = await smsClient.send({ from: to, to: [from], message: "Message received successfully. Will respond shortly." }); }; export default eventGridTrigger;
Vanaf hier zijn de mogelijkheden eindeloos. U kunt de code in de laatste stap aanpassen, van het beantwoorden van een bericht met een vooraf ingeblikt antwoord tot het toevoegen van een bot of het opslaan van antwoorden.
Lokaal uitvoeren
Als u de functie lokaal wilt uitvoeren, drukt u F5
in Visual Studio Code. We gebruiken ngrok om onze lokaal uitgevoerde Azure-functie te koppelen aan Azure Event Grid.
Zodra de functie wordt uitgevoerd, configureren we ngrok. (U moet ngrok downloaden voor uw omgeving.)
ngrok http 7071
Kopieer de ngrok-koppeling waar uw functie wordt uitgevoerd.
Configureer sms-gebeurtenissen via Event Grid in uw Azure Communication Services-resource. We doen dit met behulp van de Azure CLI. U hebt de resource-id nodig voor uw Azure Communication Services resource in de Azure Portal. (De resource-id ziet er ongeveer als volgt uit: /subscriptions/
<<AZURE SUBSCRIPTION ID>>
/resourceGroups/<<RESOURCE GROUP NAME>>
/providers/Microsoft.Communication/CommunicationServices/<<RESOURCE NAME>>
)az eventgrid event-subscription create --name "<<EVENT_SUBSCRIPTION_NAME>>" --endpoint-type webhook --endpoint "<<NGROK URL>> " --source-resource-id "<<RESOURCE_ID>>" --included-event-types Microsoft.Communication.SMSReceived
Nu alles is gekoppeld, kunt u de stroom testen door een sms-bericht te verzenden naar het telefoonnummer dat u op uw Azure Communication Services resource hebt. U ziet de consolelogboeken op uw terminal waarop de functie wordt uitgevoerd. Als u de code hebt toegevoegd om op de sms te reageren, ziet u dat sms-bericht aan u wordt bezorgd.
Implementeren op Azure
Als u de Azure-functie wilt implementeren in Azure, moet u deze instructies volgen. Zodra de implementatie is uitgevoerd, configureren we Event Grid voor de Azure Communication Services resource. Met de URL voor de Azure-functie die is geïmplementeerd (URL gevonden in de Azure Portal onder de functie), voeren we de volgende opdracht uit:
az eventgrid event-subscription update --name "<<EVENT_SUBSCRIPTION_NAME>>" --endpoint-type azurefunction --endpoint "<<AZ FUNCTION URL>> " --source-resource-id "<<RESOURCE_ID>>"
Omdat we het gebeurtenisabonnement bijwerken dat we voor lokale tests hebben gemaakt, moet u dezelfde gebeurtenisabonnementnaam gebruiken die u hierboven hebt gebruikt.
U kunt testen door een sms te verzenden naar het telefoonnummer dat u hebt aangeschaft via Azure Communication Services resource.
Logic Apps en Power Automate bieden standaardconnectors voor het verwerken van gebeurtenissen die worden gegenereerd door Azure Communication Services via Event Grid. Zowel Logic Apps als Power Automate bieden dezelfde set connectors. Het is aan u om te beslissen wat u wilt, lees over de verschillen tussen de services om uw beslissing te informeren.
Gebeurtenissen verwerken met de Event Grid-connector
Begin met het maken van een nieuwe stroom in uw voorkeursomgeving. Kies de trigger om aan de
When a resource event occurs
slag te gaan.Laten we het nu configureren. Voor de connector moet u een abonnement opgeven dat u wilt gebruiken. (Moet hetzelfde abonnement zijn als waarin uw Azure Communication Services resource zich bevindt). Geef het type resource op. Kies
Microsoft.Communication.CommunicationServices
in dit geval . Vervolgens moet u een resourcenaam opgeven voor de Azure Communication Services resource waarmee u verbinding wilt maken. Ten slotte moeten we de gebeurtenistypen kiezen die we willen ontvangen, in dit geval:Microsoft.Communication.SMSReceived
.De connector stelt het gebeurtenisabonnement automatisch namens u in en configureert de gebeurtenissen die deze wil ontvangen.
Als u ons leven later gemakkelijker wilt maken, voegt u een
Parse JSON connector
reactie toe aan het proces dat afkomstig is van de Event Grid-connector. Configureer de connector om hetBody
object uit de Event Grid-connector te halen en te koppelen aan het verwachte schema voor de gebeurtenis:Voorbeeldschema (openen om te zien)
{ "properties": { "data": { "properties": { "From": { "type": "string" }, "Message": { "type": "string" }, "MessageId": { "type": "string" }, "ReceivedTimestamp": { "type": "string" }, "To": { "type": "string" } }, "type": "object" }, "dataVersion": { "type": "string" }, "eventTime": { "type": "string" }, "eventType": { "type": "string" }, "id": { "type": "string" }, "metadataVersion": { "type": "string" }, "subject": { "type": "string" }, "topic": { "type": "string" } }, "type": "object" }
Op dit moment hebt u de sms-gebeurtenis verwerkt. U hebt vervolgens meerdere opties voor wat u ermee moet doen, variërend van het vastleggen van de gebeurtenis tot het reageren op de sms. In de context van dit document laten we zien hoe u erop kunt reageren. Lees verder voor meer informatie over de stappen voor het reageren op het sms-bericht.
Reageren op de sms
Begin met het toevoegen van de SMS-connector aan onze stroom en configureer deze met de informatie voor onze Azure Communication Services-resource. Hiermee kan de connector toegang krijgen tot de resource en het sms-bericht namens ons verzenden. U hebt de
connection string
voor uw resource nodig.Vervolgens configureren we de connector met de informatie voor de afzender en ontvanger. We gebruiken de gegevens van de gebeurtenis die we hebben ontvangen om deze in te vullen. Gebruik de
to
nummers enfrom
om een sms-bericht terug te sturen naar de oorspronkelijke afzender. Voeg ten slotte een bericht toe.
Nu kunt u de stroom opslaan en testen door een sms te verzenden naar het telefoonnummer dat is gekoppeld aan uw Azure Communication Services resource. U ontvangt een sms-bericht.
Vanaf hier zijn de mogelijkheden eindeloos. U kunt meer logica toevoegen aan de stroom, van het reageren op een bericht met een vooraf ingeblikt antwoord tot het toevoegen van een bot of het opslaan van antwoorden.
Resources opschonen
Als u een Communication Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. Meer informatie over het opschonen van resources.
Gratis verificatie
Als u een nieuw gratis nummer hebt en een groot aantal sms-berichten wilt verzenden of sms-berichten wilt verzenden naar Canadese telefoonnummers, kunt u hier terecht voor meer informatie over het verifiëren van uw gratis nummer.
Volgende stappen
In deze quickstart hebt u geleerd hoe u sms-berichten verzendt met behulp van Communication Services.