Delen via


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

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

  1. Installeer de Azure Functions-extensie met behulp van Visual Studio Code.

  2. 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

  1. 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

  1. 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 de connection 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>>"
  }
}

  1. Vervolgens stellen we een sms op om te verzenden op basis van de to en-waarden from 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.

  1. 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.

  2. 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 
    
    
  3. 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

  1. 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.

    Schermopname van het kiezen van triggers voor Power Automate.

  2. 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.CommunicationServicesin 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.

    Schermopname van event grid-connector.

    De connector stelt het gebeurtenisabonnement automatisch namens u in en configureert de gebeurtenissen die deze wil ontvangen.

  3. 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 het Body 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"
        }
    
    

    Schermopname van de JSON-connector parseren.

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

  1. 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.

    Schermopname van het instellen van het scherm voor de sms-connector.

  2. 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 en from om een sms-bericht terug te sturen naar de oorspronkelijke afzender. Voeg ten slotte een bericht toe.

    Schermopname van de configuratie van de SMS-connector.

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.