Feedback

C# - SMS versenden

Veröffentlicht von am 24.10.2012
(0 Bewertungen)
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
GFU-Schulungen  [Anzeige]

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

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; }
    }
}

Abgelegt unter SMS.

4 Kommentare zum Snippet

Dani schrieb am 25.10.2012:
Super Beitrag, funktioniert! Interessant wäre die Möglichkeit um auch SMS zu empfangen. Gruss
Dani schrieb am 26.10.2012:
Eine Frage dazu; wie kann ich das SmsResponse - Objekt lokal in eine Textdatei schreiben? Beispiel?
Koopakiller schrieb am 10.02.2013:
@Dani Du kannst Beispielsweise in die 1. Zeile den Messagecount schreiben und darunter für jedes Element in der Messages-Liste eine Zeile belegen.
Zum auslesen musst du nun nur alle Zeilen einlesen und wieder entsprechend zuweisen ;)
Mehr zur Serialisierung:
http://msdn.microsoft.com/de-de/library/vstudio/ms233843.aspx
Dani schrieb am 11.02.2013:
@Koopakiller, besten Dank für die Info. Es funktioniert.
 

Logge dich ein, um hier zu kommentieren!