我有一些代码可以从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);
}
}
}
答案 0 :(得分:1)
您将需要在属性
中对其进行配置[TwilioSms(AccountSidSetting = "TwilioAccountSid", AuthTokenSetting = "TwilioAuthToken", From = "+1425XXXXXXX")]
中所述
TwilioAccountSid ,必须设置此值 到保存您的Twilio帐户Sid的应用设置的名称,例如 TwilioAccountSid。如果未设置,则默认应用设置名称为 “ AzureWebJobsTwilioAccountSid”。
TwilioAuthToken 该值必须设置为 包含您的Twilio身份验证令牌的应用程序设置的名称 例如TwilioAccountAuthToken。如果未设置,则为默认应用设置名称 是“ AzureWebJobsTwilioAuthToken”。