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
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre ingyenes fiókot.
- Aktív Communication Services-erőforrás és kapcsolati sztring. Hozzon létre egy Communication Services-erőforrást.
- SMS-kompatibilis telefonszám. Telefonszám lekérése.
- Az Event Grid-erőforrás-szolgáltatás engedélyezése az előfizetésben. Lásd az utasításokat.
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
A Visual Studio Code használatával telepítse a Azure Functions bővítményt.
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
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
- 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 azconnection 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>>"
}
}
Ezután sms-t írunk, hogy elküldjük a
to
kapott esemény ésfrom
é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.
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.
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
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
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.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
.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.
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 objektumotBody
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" }
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
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.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ávalto
sms-t küldhet vissza az eredeti feladónak. Végül adjon hozzá egy üzenetet.
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.