Share via


Rövid útmutató: Sms fogadása és megválaszolása

Azure Communication Services SMS-képességek lehetővé teszik a fejlesztők számára, hogy felhasználhassák az SMS-ben kapott eseményeket. Az eseményeket a rendszer Azure Event Grid küldi el, amely külső integrációkat biztosít a webhookok, a Azure Functions, a Power Automate/ Logic App összekötőinek és egyebeknek a feldolgozásához.

A fogadást követően az SMS-üzenetek feldolgozhatók, hogy válaszoljanak rájuk, vagy egyszerűen naplózzák őket egy adatbázisba a későbbi hozzáférés érdekében.

Ebben a rövid útmutatóban az SMS-ben kapott események feldolgozásának bemutatására összpontosítunk Azure Functions az Event Grid-eseményindítók és a Power Automate/Logic Apps kód nélküli összekötőinek használatával.

A SMSReceived Azure Communication Services telefonszámra küldött SMS-ek által generált esemény a következő módon van formázva:

[{
  "id": "Incoming_20200918002745d29ebbea-3341-4466-9690-0a03af35228e",
  "topic": "/subscriptions/50ad1522-5c2c-4d9a-a6c8-67c11ecb75b8/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"
}]

Az események létrehozásának megkezdéséhez konfigurálnunk kell Azure Event Grid a Azure Communication Services erőforráshoz.

Megjegyzés

A Azure Event Grid használata további költségekkel jár. További információ: Azure Event Grid díjszabás.

Előfeltételek

Az Event Grid beépített támogatást nyújt a Azure Functions számára, így egyszerűen állíthat be eseményfigyelőt anélkül, hogy foglalkoznia kellene a fejlécek elemzésének vagy a webhookok hibakeresésének összetettségével. A dobozon kívüli eseményindító használatával beállíthatunk egy Azure-függvényt, amely minden alkalommal fut, amikor egy eseményt észlelnek, amely megfelel az eseményindítónak. Ebben a dokumentumban az SMS-ben kapott eseményindítókra összpontosítunk.

Helyi környezet beállítása

  1. A Visual Studio Code használatával telepítse a Azure Functions bővítményt.

  2. A bővítménnyel hozzon létre egy Azure-függvényt az alábbi utasításokat követve.

    Konfigurálja a függvényt az alábbi utasításokat követve:

    • Nyelv: TypeScript
    • Sablon: Azure Event Grid trigger
    • Függvény neve: Felhasználó által definiált

    A létrehozás után megjelenik egy, a címtárban létrehozott függvény:

    
    import { AzureFunction, Context } from "@azure/functions"
    
    const eventGridTrigger: AzureFunction = async function (context: Context, eventGridEvent: any): Promise<void> {
        context.log(eventGridEvent);
    
    };
    
    export default eventGridTrigger;
    
    

Az Azure-függvény konfigurálása SMS-esemény fogadásához

  1. Konfigurálja az Azure-függvényt úgy, hogy elemezni tudja az eseményből származó értékeket, például azt, hogy ki küldte, milyen számra és mi volt az üzenet.

    
    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;
    
    

Ezen a ponton sikeresen kezelte az SMS-ek fogadását az eseményeken keresztül. Most már a lehetőségeket, hogy mit kell tenni, hogy az eseménytartomány csak naplózása, hogy válaszoljon rá. A következő szakaszban arra összpontosítunk, hogy válaszoljunk a kapott SMS-ekre. Ha nem szeretne válaszolni az SMS-re, ugorjon a függvény helyi futtatásának következő szakaszára.

Válasz az SMS-re

  1. A bejövő SMS-ekre való válaszadáshoz az Azure Communication Service SMS-funkcióit használjuk az SMS-küldéshez. Első lépésként inicializáljuk és SmsClient inicializáljuk az connection string erőforráshoz. Beillesztheti a kapcsolati sztring közvetlenül a kódba, vagy elhelyezheti a local.settings.json fájlban az Azure Function könyvtárában az értékek alatt.

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "ACS_CONNECTION_STRING": "<<CONNECTION STRING>>"
  }
}

  1. Ezután sms-t írunk, hogy elküldjük a to kapott esemény és from értékek alapján.

    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;
    

Innen a lehetőségek végtelenek. Az előre beolvasott válaszokkal rendelkező üzenetekre való válaszadástól a robot hozzáadásáig vagy a válaszok egyszerűen tárolásáig az utolsó lépésben módosíthatja a kódot ehhez.

Helyi futtatás

A függvény helyi futtatásához nyomja le F5 a Visual Studio Code billentyűt. Az ngrok használatával összekapcsoljuk a helyileg futó Azure-függvényt Azure Event Grid.

  1. A függvény futtatása után konfiguráljuk az ngrokot. (Le kell töltenie az ngrok-ot a környezetéhez.)

    ngrok http 7071
    

    Másolja ki a függvény futtatásához megadott ngrok hivatkozást.

  2. Konfigurálja az SMS-eseményeket az Event Griden keresztül a Azure Communication Services erőforráson belül. Ezt az Azure CLI használatával hajtjuk végre. Szüksége van a Azure Portal található Azure Communication Services erőforrás-azonosítójára. (Az erőforrás-azonosító a következőhöz hasonló lesz: /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. Most, hogy minden össze van kapcsolva, tesztelje a folyamatot úgy, hogy sms-t küld a Azure Communication Services erőforrásán lévő telefonszámra. Meg kell jelennie a konzolnaplóknak azon a terminálon, amelyen a függvény fut. Ha hozzáadta a kódot, hogy válaszoljon az SMS-nek, látnia kell, hogy a szöveges üzenet visszakerült Önhöz.

Üzembe helyezés az Azure-ban

Az Azure-függvény Azure-ban való üzembe helyezéséhez kövesse ezeket az utasításokat. Az üzembe helyezést követően konfiguráljuk az Event Gridet a Azure Communication Services erőforráshoz. Az üzembe helyezett Azure-függvény URL-címével (a függvény alatti Azure Portal található URL-címmel) a következő parancsot futtatjuk:


az eventgrid event-subscription update --name "<<EVENT_SUBSCRIPTION_NAME>>" --endpoint-type azurefunction --endpoint "<<AZ FUNCTION URL>> " --source-resource-id "<<RESOURCE_ID>>"

Mivel a helyi teszteléshez létrehozott esemény-előfizetést frissítjük, ügyeljen arra, hogy a fent használt esemény-előfizetési nevet használja.

Teszteléshez küldjön SMS-t arra a telefonszámra, amelyet Azure Communication Services erőforráson keresztül beszerzett.

A Logic Apps és a Power Automate külső összekötőket biztosít a Azure Communication Services által az Event Griden keresztül létrehozott események kezeléséhez. A Logic Apps és a Power Automate is ugyanazt az összekötőkészletet biztosítja. Ön dönti el, hogy mit szeretne, olvassa el a szolgáltatások közötti különbségeket , hogy tájékoztassa a döntését.

Események kezelése az Event Grid-összekötővel

  1. Először hozzon létre egy új folyamatot az előnyben részesített környezetben. Válassza ki az When a resource event occurs eseményindítót az első lépésekhez.

    Képernyőkép a Power Automate eseményindító-kiválasztásáról.

  2. Most már konfigurálhatja. Az összekötő használatához meg kell adnia egy használni kívánt előfizetést. (Annak az előfizetésnek kell lennie, amelyben a Azure Communication Services erőforrás található). Adja meg az erőforrás típusát. Ebben az esetben válassza a lehetőséget Microsoft.Communication.CommunicationServices. Ezután meg kell adnia az erőforrás nevét annak a Azure Communication Services erőforrásnak, amelyhez csatlakozni szeretne. Végül ki kell választanunk a kapni kívánt eseménytípusokat, ebben az esetben: Microsoft.Communication.SMSReceived.

    Képernyőkép az eseményrács-összekötőről.

    Az összekötő automatikusan beállítja az esemény-előfizetést az Ön nevében, és konfigurálja a fogadni kívánt eseményeket.

  3. Ha később egyszerűbbé szeretné tenni az életünket, adjon hozzá egy, Parse JSON connector az Event Grid-összekötőből érkező válasz feldolgozásához. Konfigurálja úgy az összekötőt, hogy az objektumot Body az Event Grid-összekötőből vegye át, és egyezzen az esemény várt sémájának megfelelően:

    Mintaséma (megnyitva a megtekintéséhez)
    
        {
            "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"
        }
    
    

    Képernyőkép a JSON-összekötő elemzéséről.

Ezen a ponton sikeresen kezelte az SMS-eseményt. Ezután több lehetősége van arra, hogy mit tegyen vele, kezdve az esemény naplózásától az SMS-re való válaszadásig. A dokumentum kontextusában bemutatjuk, hogyan válaszolhat rá. Folytassa az olvasást, és ismerje meg az SMS-ekre való válaszadás lépéseit.

Válasz az SMS-re

  1. Először vegye fel az SMS-összekötőt a folyamatba, és konfigurálja az Azure Communication Services erőforrás adataival. Lehetővé teszi az összekötő számára, hogy hozzáférjen az erőforráshoz, és elküldje az SMS-t a nevünkben. Szüksége van az connection string erőforrásra.

    Képernyőkép az SMS-összekötő beállítási képernyőjének beállításáról.

  2. Ezután konfiguráljuk az összekötőt a feladó és a címzett adataival. A kapott esemény információi alapján töltjük fel őket. Az és from a szám megírásával to sms-t küldhet vissza az eredeti feladónak. Végül adjon hozzá egy üzenetet.

    Képernyőkép az SMS-összekötő konfigurációjáról.

Most mentheti és tesztelheti a folyamatot úgy, hogy sms-t küld a Azure Communication Services erőforráshoz társított telefonszámra. Sms-t kell kapnia.

Innen a lehetőségek végtelenek. Az előre beolvasott választ tartalmazó üzenetekre való válaszadástól a robotok hozzáadásáig vagy a válaszok egyszerűen tárolásáig további logikát adhat a folyamathoz.

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Communication Services-előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli. További információ az erőforrások eltávolításáról.

Ingyenes ellenőrzés

Ha új ingyenes számmal rendelkezik, és nagy mennyiségű SMS-t szeretne küldeni, vagy SMS-t szeretne küldeni kanadai telefonszámra, látogasson el ide , hogy megtudja, hogyan ellenőrizheti az ingyenes telefonszámát.

Következő lépések

Ebben a rövid útmutatóban megtanulta, hogyan küldhet SMS-üzeneteket a Communication Services használatával.