Der Anbieter Nexmo bietet eine REST basierte API, mit der weltweit SMS versendet werden können.
Der Versand einer SMS kostet im Moment innerhalb Deutschlands 5,5 Cent. Wer den Dienst nutzen möchte, kann sich kostenlos registrieren und erhält ein Startguthaben um den Service zu testen.
Der folgende Code zeigt wie die REST API genutzt werden kann. Error Handling usw. ist nicht implementiert.
Im Code wird die Klasse JavaScriptSerializer verwendet, welche das .NET Framework 4.5 erfordert!
Die Klasse kann wie folgt aufgerufen werden:
SmsResponse response = new SmsSender().SendSMS("491725555555", "Your Name", "USERNAME", "PASSWORD", "Test SMS");
Das SmsResponse - Objekt, welches die Methode SendSMS zurück gibt, enthält:
- Den Preis, was die gesendete SMS gekostet hat
- Den Status (0 = erfolgreich versendet)
- Die Message Id
- Das verbleibende Guthaben bei Nexmo
URL zum Anbieter: http://www.nexmo.com
using System.Collections.Generic;
using System.Net;
using System.Web.Script.Serialization;
namespace SMS
{
class SmsSender
{
public SmsResponse SendSMS(string number, string from, string username, string pasword, string text)
{
string uri = string.Format("http://rest.nexmo.com/sms/json?username={0}&password={1}&from={2}&to={3}&text={4}", username, pasword, from, number, text);
var json = new WebClient().DownloadString(uri);
return ParseSmsResponseJson(json);
}
private SmsResponse ParseSmsResponseJson(string json)
{
// hyphens are not allowed in in .NET var names
json = json.Replace("message-count", "MessageCount");
json = json.Replace("message-price", "MessagePrice");
json = json.Replace("message-id", "MessageId");
json = json.Replace("remaining-balance", "RemainingBalance");
return new JavaScriptSerializer().Deserialize<SmsResponse>(json);
}
}
public class Message
{
public string To { get; set; }
public string Messageprice { get; set; }
public string Status { get; set; }
public string MessageId { get; set; }
public string RemainingBalance { get; set; }
}
public class SmsResponse
{
public string Messagecount { get; set; }
public List<Message> Messages { get; set; }
}
}
4 Kommentare zum Snippet