从Azure Functions v2配置Twilio SMS

时间:2019-04-04 23:01:19

标签: azure twilio azure-functions 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 个答案:

答案 0 :(得分:1)

您将需要在属性

中对其进行配置
[TwilioSms(AccountSidSetting = "TwilioAccountSid", AuthTokenSetting = "TwilioAuthToken", From = "+1425XXXXXXX")]

documentation

中所述
  

TwilioAccountSid ,必须设置此值   到保存您的Twilio帐户Sid的应用设置的名称,例如   TwilioAccountSid。如果未设置,则默认应用设置名称为   “ AzureWebJobsTwilioAccountSid”。

     

TwilioAuthToken 该值必须设置为   包含您的Twilio身份验证令牌的应用程序设置的名称   例如TwilioAccountAuthToken。如果未设置,则为默认应用设置名称   是“ AzureWebJobsTwilioAuthToken”。