Hogyan küldjünk SMS-t C#-ból

A legegyszerűbb módja az SMS küldésének C#-ból az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Amikor ezt az API-t használod, SMS üzeneteket küldhetsz HTTP POST kérések kiadásával az SMS gateway felé. A HTTP POST kérés egy JSON formátumban formázott üzenetet fog tartalmazni. Az SMS gateway továbbítja ezt az SMS-t a címzett telefonszámára, és egy HTTP 200 OK választ küld vissza a kérésedre. (1. ábra)

hogyan küldjünk sms-t c#-ból
1. ábra - Hogyan küldjünk SMS-t C#-ból

C# kód SMS küldésére mobilra

Az alábbi C# SMS kód minta bemutatja, hogyan küldhetsz SMS-t az Ozeki SMS Gateway HTTP REST SMS API-jával a C# Ozeki.Libs.Rest könyvtár segítségével. Ez a könyvtár ingyenesen elérhető, és bármely projektben felhasználhatod és módosíthatod.

SendSMS.cs
using Ozeki.Libs.Rest;
using System;

namespace SendSms
{
    class Program
    {
        static void Main(string[] args)
        {
            var configuration = new Configuration()
            {
                Username = "http_user",
                Password = "qwe123",
                ApiUrl = "http://127.0.0.1:9509/api"
            };

            var msg = new Message()
            {
                ToAddress = "+36201111111",
                Text = "Hello, World!"
            };

            var api = new MessageApi(configuration);

            var result = api.Send(msg);

            Console.WriteLine(result);
            Console.ReadKey();
        }
    }
}

Hogyan használd a C# SMS példát:

Ez a C# SMS példa bármely .NET vagy .NET core alkalmazásban használható. A használatához hozzá kell adnod az Ozeki.Libs.Rest DLL-t referenciaként a projektedhez. A projekt referenciája hozzáadása után az using Ozeki.Libs.Rest; direktívát kell elhelyezned a C# forráskódod fejléc részébe. Ez lehetővé teszi az Ozeki.Libs.Rest könyvtár által nyújtott osztályok használatát. A Message osztály segítségével hozhatod létre az SMS-t. A MessageApi osztály segítségével elküldheted az SMS-t az SMS gatewaynek. Az SMS gateway továbbítja az üzenetedet a mobil hálózatba vezeték nélküli kapcsolaton vagy az interneten keresztül.

SendSMS.cs letöltése

A cikkben ismertetett forráskód ingyenesen letölthető, felhasználható és módosítható.
Letöltés: SendSms.cs.zip (33.3Kb)

Mi található a SendSms.cs.zip fájlban?

A SendSms.cs.zip fájl tartalmazza az Ozeki.Libs.Rest könyvtárat, amely minden szükséges eszközt biztosít az SMS üzenetek küldéséhez és fogadásához. A zip fájlban megtalálod a SendSms projektet is, amely tartalmazza a példakódot, amely bemutatja, hogyan küldj SMS-t. Ez a példakód az alábbiakban látható. (2. ábra)

send sms cs könyvtár
2. ábra - Mi található a SendSms.cs.zip fájlban

Hogyan küldjünk SMS-t C#-ból (Egyszerű útmutató)

Az SMS küldéséhez C#-ból:

  1. Telepíts egy HTTP API felhasználót
  2. Kapcsold be a Kommunikációs események naplózását a Speciális lapon
  3. Állítsd be a Visual Studio-t
  4. Töltsd le, majd csomagold ki a SendSms.cs.zip fájlt
  5. Nyisd meg a SendSms.sln fájlt a Visual Studio-ban
  6. Indítsd el az Ozeki SMS Gateway alkalmazást
  7. Futtasd a Program.cs C# kódot a Visual Studio-ban
  8. Ellenőrizd a naplókat, hogy az SMS elküldődött-e

Telepítsd az Ozeki SMS Gateway-t és hozz létre egy HTTP API felhasználót

Ahhoz, hogy SMS-t tudj küldeni C#-ból, először telepítened kell az Ozeki SMS Gateway-t. Az SMS gateway telepíthető ugyanarra a számítógépre, ahol a C# kódodat fejleszted a Visual Studio-ban. A telepítés után a következő lépés az, hogy csatlakoztatsd az Ozeki SMS Gateway-t a mobil hálózathoz. Küldhetsz egy teszt SMS-t az Ozeki GUI-ból annak ellenőrzésére, hogy a mobil hálózati kapcsolatod működik. A környezet előkészítésének utolsó lépése, hogy létrehozz egy HTTP SMS API felhasználói fiókot. Hozz létre egy felhasználót "http_user" felhasználónévvel és "qwe123" jelszóval, hogy a példa módosítás nélkül működjön.

Miután a környezet be van állítva, futtathatod a C# kódodat.

HTTP API URL az SMS küldéséhez C#-ból

Az SMS C#-ból történő küldéséhez a C# alkalmazásodnak HTTP kérést kell küldenie az SMS gatewaynek. Az API URL az alábbiakban látható. Fontos, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét írd. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a C# SMS alkalmazás fut, ez lehet 127.0.0.1. Ha másik számítógépre van telepítve, annak az IP címét kell megadni.

http://127.0.0.1:9509/api?action=rest

HTTP hitelesítés az SMS küldéséhez C#-ból

A C# SMS kliens hitelesítéséhez a felhasználónevet és a jelszót base64 kódolt sztringként kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(felhasználónév+":"+jelszó). C#-ban a következő kódot használhatod a kódoláshoz:

var encoding = Encoding.GetEncoding("iso-8859-1");
var usernamePassword = username + ":" + password;
var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));

Például, ha a 'http_user' felhasználónevet és a 'qwe123' jelszót kódolod, a következő base64 kódolt sztringet kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés fejléc az SMS küldéséhez C#-ból

Az SMS üzenetek küldéséhez a következő sorokat kell tartalmaznia a HTTP kérés fejléc részének. Figyelj rá, hogy tartalmazzon egy Content-Type és egy Authorization fejlécet.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

HTTP kérés az SMS küldéséhez C#-ból

Az SMS beküldéséhez a C# alkalmazásod egy olyan HTTP kérést fog küldeni, mint az alábbi. Figyelj rá, hogy ez a kérés tartalmaz egy HTTP fejléc részt és egy HTTP törzs részt. A HTTP törzs egy JSON kódolt adatsztring. Tartalmazza a címzett számát és az üzenet szövegét.

POST /api?action=sendmsg HTTP/1.1
Connection: Keep-Alive
Content-Length: 336
Content-Type: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509

{
  "messages": [
    {
      "message_id": "b570dbae-3a05-456d-9dad-a02161b16f1c",
      "to_address": "+36201111111",
      "text": "Hello, World!",
      "create_date": "2021-06-11 11:20:02",
      "valid_until": "2021-06-18 11:20:02",
      "time_to_send": "2021-06-11 11:20:02",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    }
  ]
}

HTTP válasz, amit a C# SMS példa kap

Miután az SMS gateway megkapta ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmaz egy státuszkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Ezenkívül visszaad egy JSON kódolt struktúrát, amely hasznos részleteket nyújt az üzenet beküldéséről.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.116 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Fri, 11 Jun 2021 11:17:49 GMT
Server: 10/10.3.116
Transfer-Encoding: chunked

{
  "http_code": 200,
  "response_code": "SUCCESS",
  "response_msg": "Messages queued for delivery.",
  "data": {
    "total_count": 1,
    "success_count": 1,
    "failed_count": 0,
    "messages": [
      {
        "message_id": "b570dbae-3a05-456d-9dad-a02161b16f1c",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello, World!",
        "create_date": "2021-06-11 11:20:02",
        "valid_until": "2021-06-18 11:20:02",
        "time_to_send": "2021-06-11 11:20:02",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}

Csatlakoztasd az SMS gatewayed a mobil hálózathoz és hozz létre egy HTTP API felhasználói fiókot

Feltételezzük, hogy már telepítetted az Ozeki SMS Gateway-t, és csatlakoztattad a mobil hálózathoz. Ahhoz, hogy SMS-t tudj küldeni egy mobiltelefonra C#-ból, be kell állítanod egy HTTP API felhasználói fiókot az Ozeki SMS Gateway-ben.

Új felhasználó létrehozása (Videó útmutató)

Ez a videó bemutatja, hogyan állíthatsz be egy új HTTP API felhasználói fiókot. Az Ozeki SMS Gateway kezdőlapjáról indul, és az új felhasználó Események lapjával ér véget. A videó megmutatja, hogyan hozhatod létre és konfigurálhatod az új felhasználód. A videó nagyszerű tulajdonsága, hogy mindössze 30 másodperc hosszú, de tartalmazza az összes szükséges információt egy új HTTP API felhasználó létrehozásához.

1. videó - Hogyan állítsunk be egy HTTP API felhasználói fiókot (Videó útmutató)

Hogyan küldjünk SMS-t C#-ból a C# SMS API használatával (Videó útmutató)

Ez a videó bemutatja, hogyan töltheted le a SendSms.cs.zip fájlt erről az oldalról, és hogyan töltheted le annak tartalmát a Visual Studio-ban. Ha megnézed a videót, észre fogod venni, hogy a SendSms.cs zip tartalma a Windows asztalra kerül. Azt is látni fogod, hogy duplán kattintunk a SendSms.sln megoldásfájlra a megoldás megnyitásához. A Visual Studio néhány figyelmeztetést fog megjeleníteni, mivel a fájl a webről származik. Egyszerűen kattints az OK gombra ezek elkerüléséhez.

2. videó - Hogyan töltsük le és futtassuk a példa projektet (Videó útmutató)

C# SMS példa: SendSms.sln

Az alábbi példakód a SendSms.sln Visual Studio megoldás része. Egy Visual Studio megoldás több projektet és fájlt is tartalmazhat. Ebben a megoldásban csak egy projekt található: SendSms.csproj, és egy fájl: Program.cs.

2. ábra - SendSms.sln

Hogyan ellenőrizd, hogy az SMS-t elfogadta-e az HTTP felhasználó (Videó útmutató)

Az SMS beküldése után érdemes ellenőrizni az SMS gatewayedet, hogy lássad, mit kapott. A naplót az Ozeki SMS Gateway kezelőfelületén az HTTP felhasználó részleteinek megnyitásával ellenőrizheted. A következő videó bemutatja, hogy mire kell figyelned. A videó a megnyitott kóddal indul, és az elküldött üzenet részleteivel ér véget. Megtanulod, hogyan indítsd el a projektet, hogyan néz ki a projekt futás közben, és hogyan néz ki a naplófájl utána. A videó mindössze 42 másodperc hosszú és könnyen érthető. Nem lesz gondod a követésével.

3. videó - Hogyan küldjünk SMS-t a fenti C# kóddal (Videó útmutató)

Hogyan ellenőrizd, hogy az SMS el lett-e küldve a mobil hálózatba

Az eljárás ellenőrzésének utolsó lépése, hogy megnézd a mobil hálózati kapcsolat naplóit. Lehet, hogy be kell kapcsolnod a naplózást a kapcsolat beállításaiban, mielőtt elküldöd az üzenetet, hogy lásd a naplókat. Ha a naplózás be van kapcsolva, látni fogod a telefonszámot és az elküldött üzenet szövegét.

Teszteld, hogy a kérést elfogadták-e (Videó útmutató)

A következő videóban látni fogod, hogyan ellenőrizheted, hogy az SMPP kliens sikeresen elküldte-e az üzenetedet. Megtanulod, hogyan nyisd meg az SMPP felhasználó Események lapját, és hogy mire kell figyelned. A videó mindössze 18 másodperc hosszú, de nagyon hasznos lesz.

4. videó - Hogyan teszteljük, hogy a kérést elfogadta-e az SMPP kliens (Videó útmutató)

SMS érkezett a telefonra (Videó útmutató)

A következő videón látni fogod, hogyan néz ki egy bejövő üzenet, amelyet az Ozeki SMS Gateway küldött. Egy android telefon kezdőképernyőjével indul, és az üzenet megnyitásával ér véget. Mindössze 18 másodperc hosszú, és láthatod az üzenet fogadásának teljes folyamatát.

5. videó - Hogyan néz ki egy bejövő üzenet az Ozeki SMS Gateway-től (Videó útmutató)

A C# SMS példa futtatása Windows-on

Amikor Windowson futtatod ezt a C#-ban írt SMS példát, észre fogod venni, hogy kissé jobb teljesítményt kapsz, mint Linuxon történő futtatáskor. Ennek megértéséhez észben kell tartanod, hogy a C# a .NET keretrendszert használja a kód végrehajtásához. Ez azért van, mert a .NET implementáció Windowson a teljesítményre van optimalizálva, míg a mono, a .NET implementáció Linuxon még van mit behozni ezen a téren.

Összefoglalás

A fenti útmutató elmagyarázta az SMS C#-ból történő küldésének lépéseit. Amint látható, az Ozeki minden szükséges eszközt biztosít az üzenetküldéshez, tehát ha a lépéseket gondosan követted, az üzenetküldés C#-ból már nem jelent problémát. Az Ozeki SMS Gateway óriási szerepet játszik az üzenetküldésben, a mobil felhasználók nélküle nem érhetők el. Fontos megjegyezni, hogy az Ozeki SMS Gateway bármely országban működik, így nemzetközi szinten is küldhetsz üzeneteket ezzel a megoldással.

Ne fejezd be itt az olvasást, böngészd az Ozeki oktatóanyag oldalát, és tanulj még többet az SMS fogadásáról C#-ban.

A következő lépés, hogy letöltöd az Ozeki SMS Gateway-t és elkezded a munkát!

More information