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]

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

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!