Настройка Twilio SMS из Azure Functions v2

#azure #twilio #azure-functions #sendgrid

#azure #twilio #azure-функции #sendgrid

Вопрос:

У меня есть некоторый код, в котором я считываю сообщения из центра событий Azure, которые я хочу либо отправить по электронной почте, либо отправить SMS.

Электронная почта работает через сетку отправки, но я не уверен, как настроить часть SMS.

Я думаю, что хотел бы использовать Twilio, и вот пример того, на что похож мой код. «messageCollector» работает для отправки электронной почты, поскольку в локальном json есть некоторая конфигурация для SendGrid. Как мне настроить Twilio?

     [FunctionName("SendAlert")]
    public static async Task Run(
        [EventHubTrigger("v1-email-hub", Connection = "EventHubConnection")] EventData[] events,
        [SendGrid] IAsyncCollector<SendGridMessage> messageCollector,
        [TwilioSms] IAsyncCollector<CreateMessageOptions> smsCollector,
        [Inject] NotificationEventLogic eventLogic,
        ILogger log)
    {

        foreach (EventData eventData in events)
        {

            string messageBody = Encoding.UTF8.GetString(eventData.Body.Array, eventData.Body.Offset, eventData.Body.Count);

            var notificationEvents = JsonConvert.DeserializeObject<List<NotificationEvent>>(messageBody);

            foreach (var ev in notificationEvents)
            {



                if (ev.NotificationEventType == NotificationEventType.Email)
                {
                    var message = new SendGridMessage();

                    // ... ... make message and add it
                    await messageCollector.AddAsync(message);
                }
                else if (ev.NotificationEventType == NotificationEventType.SMS)
                {
                    // Not sure how to get this to work
                    var mobileMessage = new CreateMessageOptions(new PhoneNumber(ev.Data))
                    {
                        Body = $"Notification {ev.NotificationId}"
                    };

                    await smsCollector.AddAsync(mobileMessage);
                }


                // await smsCollector.AddAsync()
                await eventLogic.CreateEventAsync(ev);
            }

        }
    }
  

Ответ №1:

Вам нужно будет настроить его в атрибуте

 [TwilioSms(AccountSidSetting = "TwilioAccountSid", AuthTokenSetting = "TwilioAuthToken", From = " 1425XXXXXXX")]
  

как упоминалось в документации

TwilioAccountSid Это значение должно быть установлено в качестве имени параметра приложения, который содержит Sid вашей учетной записи Twilio, например TwilioAccountSid. Если параметр не задан, именем настройки приложения по умолчанию является «AzureWebJobsTwilioAccountSid».

TwilioAuthToken Этому значению должно быть присвоено значение параметра приложения, в котором хранится ваш токен аутентификации Twilio, например TwilioAccountAuthToken. Если параметр не установлен, имя настройки приложения по умолчанию — «AzureWebJobsTwilioAuthToken».