-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTwillioService.cs
44 lines (33 loc) · 1.98 KB
/
TwillioService.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using Twilio.Rest.Api.V2010.Account;
using Twilio.TwiML;
using Twilio.AspNet.Core;
using Twilio;
namespace SimpleAnswerPhone
{
public interface ITwillioService
{
public string ReplyWithMessageToCall(string message, string voice);
public string ReplyWithMessageToSms(string message);
public string SendSMS(string messageText, string to);
public string SendWhatsAppMessage(string messageText, string to);
}
public class TwillioService : TwilioController, ITwillioService
{
public TwillioService()
{
TwilioClient.Init(Environment.GetEnvironmentVariable("TwilioSID", EnvironmentVariableTarget.Process), Environment.GetEnvironmentVariable("TwilioAuth", EnvironmentVariableTarget.Process));
}
public string ReplyWithMessageToCall(string message, string voice) => new VoiceResponse().Say(message, voice).ToString();
public string ReplyWithMessageToSms(string message) => new MessagingResponse().Message(message).ToString();
public string SendSMS(string messageText, string to) => SendMessage(messageText, to, Environment.GetEnvironmentVariable("MyNotificationNumber", EnvironmentVariableTarget.Process));
public string SendWhatsAppMessage(string messageText, string to) => SendMessage(messageText, "whatsapp:" + to, "whatsapp:" + Environment.GetEnvironmentVariable("MyNotificationNumber", EnvironmentVariableTarget.Process));
private static string SendMessage(string messageText, string to, string from)
{
return MessageResource.Create(body: messageText, from: new Twilio.Types.PhoneNumber(from), to: new Twilio.Types.PhoneNumber(to),
statusCallback: new Uri(Environment.GetEnvironmentVariable("FunctionURL", EnvironmentVariableTarget.Process) +
"/api/APErrorCalback" + Environment.GetEnvironmentVariable("ErrorCallBackAzureFunctionKey", EnvironmentVariableTarget.Process),
UriKind.Absolute)).Sid;
}
}
}