Hogyan küldjünk több 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.
C# kód több SMS mobilra küldéséhez
Az alábbi C# SMS kódminta 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ő számodra, és bármilyen projektben felhasználhatod és módosíthatod.
SendSMS.csusing Ozeki.Libs.Rest; using System; namespace SendMultipleSms { 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 msg1 = new Message() { ToAddress = "+36201111111", Text = "Hello, World 1" }; var msg2 = new Message() { ToAddress = "+362222222", Text = "Hello, World 2" }; var msg3 = new Message() { ToAddress = "+363333333", Text = "Hello, World 3" }; var api = new MessageApi(configuration); var result = api.Send(new Message[]{ msg1, msg2, msg3 }); Console.WriteLine(result); Console.ReadKey(); } } }
A C# SMS példa használata:
Ez a C# SMS példa bármilyen .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 referenca 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 létrehozhatod 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 mobilhálózatnak 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: SendMultipleSms.cs.zip (34.5Kb)
Mi található a SendMultipleSms.cs fájlban?
A SendMultipleSms.cs fájl tartalmazza az Ozeki.Libs.Rest könyvtárat, amely minden szükséges eszközt biztosít az SMS-ek küldéséhez és fogadásához. A zip fájlban megtalálod a SendMultipleSms 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ó.
Hogyan küldjünk több SMS-t C#-ból (Gyors lépések)
Több SMS küldése C#-ból:
- Állítsd be a Visual Studio Community-t
- Töltsd le a Send-multiple-SMS.cs.zip fájlt
- Csomagold ki a .zip fájlt a Letöltések mappából
- Nyisd meg a SendMultipleSms.sln fájlt a Visual Studio-ban
- Indítsd el az Ozeki SMS Gateway-t
- Hozz létre egy HTTP API felhasználót az Ozeki-ben
- Futtasd a Program.cs C# kódot a Visual Studio-ban teszt SMS-ek küldéséhez
- Ellenőrizd a Sent mappát az Ozeki SMS Gateway-ben
Ozeki SMS Gateway telepítése és HTTP API felhasználó létrehozása
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 csatlakoztassad az Ozeki SMS Gateway-t a mobilhálózathoz. Küldhetsz egy teszt SMS-t az Ozeki GUI-ból annak ellenőrzésére, hogy a mobilhálózati kapcsolatod működik. A környezet előkészítésének utolsó lépése az, 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 SMS küldéséhez C#-ból
Ahhoz, hogy SMS-t küldj C#-ból, a C# alkalmazásodnak HTTP kérést kell küldenie az SMS gateway felé. Az API URL az alábbiakban látható. Fontos, hogy az IP címet (127.0.0.1) le kell cserélni az SMS gateway IP címére. 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, akkor annak a számítógépnek az IP címét kell megadni.
http://127.0.0.1:9509/api?action=rest
HTTP hitelesítés 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ódolású karakterláncként kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(username+":"+password). 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ódolású karakterláncot kapod: aHR0cF91c2VyOnF3ZTEyMw==.
HTTP kérés fejléc SMS küldéséhez C#-ból
Az SMS üzenetek küldéséhez a következő sorokat kell tartalmaznod fejléc részként az HTTP kérésben. Figyelj rá, hogy tartalomtípust és egy Authorization fejlécet is tartalmazunk.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP kérés SMS küldéséhez C#-ból
Az SMS üzenetek 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. Az HTTP törzs egy JSON kódolású adatkarakterlánc. 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: 979 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9511 { "messages": [ { "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e", "to_address": "+36201111111", "text": "Hello, World 1", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12", "to_address": "+362222222", "text": "Hello, World 2", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9", "to_address": "+363333333", "text": "Hello, World 3", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
HTTP válasz, amit a C# SMS példa kap
Amint az SMS gateway megkapja 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 egy JSON kódolású struktúrát is visszaad, 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 13:06:37 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Messages queued for delivery.", "data": { "total_count": 3, "success_count": 3, "failed_count": 0, "messages": [ { "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World 1", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12", "from_station": "%", "to_address": "+362222222", "to_station": "%", "text": "Hello, World 2", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9", "from_station": "%", "to_address": "+363333333", "to_station": "%", "text": "Hello, World 3", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
C# SMS példa: SendMultipleSms.sln
Hogyan töltsd le a SendMultipleSMS.sln projektet (Videó útmutató)
A következő videóban megtudhatod, hogyan használhatod a SendMultipleSMS.sln C# projektet. A videó a letöltési oldallal kezdődik, és végigvezet a megnyitott kódszerkesztő panelig. Megtanulod, hogyan töltsd le és nyisd meg a kódfájlt. A videó mindössze 54 másodperc hosszú, de tartalmazza az összes szükséges információt a példakódfájl sikeres használatához.
Az alábbi példakód a SendMultipleSms.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ó: SendMultipleSms.csproj, és egy fájl: Program.cs.
Hogyan használd a projektet (Videó útmutató)
A következő klipben látni fogod, hogyan indíthatod el a SendMultipleSMS.cs C# kódot. A videó a megnyitott kóddal kezdődik, és végigvezet az események lapjáig a küldött üzenet naplójával. Látni fogod, hogyan indítsd el a kódot, és mi történik, ha a kód végrehajtódik. A videó egy kicsit kevesebb, mint 1 perc hosszú, de tartalmazza az összes szükséges információt a projekt futtatásához.
A C# SMS példa futtatása Windows-on
Amikor Windows-on futtatod ezt az C#-ban írt SMS példát, észreveheted, hogy kissé jobb teljesítményt kapsz, mint Linux-on 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ója Windows-on teljesítményre van optimalizálva, míg a mono, a .NET implementációja Linux-on még ezen a téren felzárkózóban van.
Összegzés
Ez a cikk bemutatta a több SMS egy kérésben történő küldésének lépéseit C#-ból. Ezzel a tudással és a biztosított eszközökkel képesnek kell lenned több ügyfél elérésére egyetlen kóddal. Az Ozeki SMS Gateway fontos szerepet játszik ebben a folyamatban, mivel ez a program szervezi az üzenetek kézbesítését. Az Ozeki SMS Gateway nagy minőségben és teljesítménnyel működik, lehetővé téve akár 1000 SMS másodpercenkénti küldését.
Folytasd a tanulást az Ozeki oktató oldalain, ahol olyan témákról olvashatsz, mint az SMS ütemezés és az törlés C#-ban.
Most már csak annyi a dolgod, hogy letöltöd az Ozeki SMS Gateway-t és elkezdesz dolgozni!
More information