Kako poslati više SMS poruka iz C#

Najjednostavniji način za slanje SMS poruka iz C# je korištenje ugrađenog HTTP/Rest SMS API-ja Ozeki SMS Gatewaya. Kada koristite ovaj API, slat ćete SMS poruke slanjem HTTP Post zahtjeva SMS gatewayu. HTTP Post zahtjev će sadržavati poruku formatiranu u json formatu. SMS gateway će poslati ovaj SMS na telefonski broj primatelja i vratit će HTTP 200 OK odgovor na vaš zahtjev.

slanje više SMS poruka iz
Slika 1 - Slanje više SMS poruka iz C#

C# kod za slanje više SMS poruka na mobitel

C# SMS primjer koda ispod pokazuje kako možete poslati SMS koristeći http rest SMS API Ozeki SMS Gatewaya koristeći C# Ozeki.Libs.Rest biblioteku. Ova biblioteka vam je dostupna besplatno, a možete je koristiti i mijenjati u bilo kojem od vaših projekata.

SendSMS.cs
using 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();
        }
    }
}

Kako koristiti C# SMS primjer:

Ovaj C# SMS primjer može se koristiti u bilo kojoj .NET ili .NET core aplikaciji. Da biste ga koristili, morate dodati Ozeki.Libs.Rest dll kao referencu u vaš projekt. Nakon dodavanja reference u projekt, morate staviti direktivu using Ozeki.Libs.Rest; u zaglavlje vašeg C# izvornog koda. To će vam omogućiti korištenje klasa koje pruža Ozeki.Libs.Rest biblioteka. Možete koristiti klasu Message za kreiranje SMS poruke. Možete koristiti klasu MessageApi za slanje SMS-a SMS gatewayu. SMS gateway će proslijediti vašu poruku mobilnoj mreži bilo putem bežične veze ili putem interneta.

Preuzmite SendSMS.cs

Izvorni kod objašnjen u ovom članku može se besplatno preuzeti, koristiti i mijenjati.
Preuzmi: SendMultipleSms.cs.zip (34.5Kb)

Što se nalazi u datoteci SendMultipleSms.cs?

Datoteka SendMultipleSms.cs sadrži Ozeki.Libs.Rest biblioteku, koja vam daje sve alate potrebne za slanje i primanje SMS poruka. Također ćete pronaći projekt SendMultipleSms u zip datoteci, koji sadrži primjer koda koji pokazuje kako poslati SMS. Ovaj primjer koda je naveden ispod.

direktorij za slanje više SMS poruka iz C#
Slika 2 - Što se nalazi unutar SendMultipleSms.cs.zip

Kako poslati više SMS poruka iz C# (Brzi koraci)

Za slanje više SMS poruka iz C#:

  1. Postavite Visual Studio Community
  2. Preuzmite datoteku Send-multiple-SMS.cs.zip
  3. Raspakirajte .zip datoteku iz mape Preuzimanja
  4. Otvorite datoteku SendMultipleSms.sln u Visual Studiju
  5. Pokrenite Ozeki SMS Gateway
  6. Kreirajte HTTP API korisnika u Ozekiju
  7. Pokrenite Program.cs C# kod u Visual Studiju za slanje testnih SMS poruka
  8. Provjerite mapu Poslano u Ozeki SMS Gatewayu

Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika

Da biste mogli slati SMS poruke iz C#, prvo morate instalirati Ozeki SMS Gateway. SMS gateway se može instalirati na istom računalu na kojem razvijate svoj C# kod u Visual Studiju. Nakon instalacije, sljedeći korak je povezivanje Ozeki SMS Gatewaya s mobilnom mrežom. Možete poslati testni SMS iz Ozeki GUI-a kako biste potvrdili da vaša mobilna mrežna veza radi. Konačni korak za pripremu vašeg okruženja je kreiranje HTTP SMS API korisničkog računa. Kreirajte korisnika s korisničkim imenom "http_user" i lozinkom "qwe123" kako bi primjer radio bez izmjena.

Nakon što je okruženje postavljeno, možete pokrenuti svoj C# kod.

HTTP API URL za slanje SMS poruka iz C#

Da biste poslali SMS poruke iz C#, vaš C# kod će morati poslati HTTP zahtjev SMS gatewayu. API URL je prikazan ispod. Imajte na umu da IP adresa (127.0.0.1) treba biti zamijenjena IP adresom vašeg SMS gatewaya. Ako je Ozeki SMS Gateway instaliran na istom računalu na kojem se pokreće C# SMS aplikacija, ovo može biti 127.0.0.1. Ako je instaliran na drugom računalu, treba biti IP adresa tog računala.

http://127.0.0.1:9509/api?action=rest
HTTP autentifikacija za slanje SMS-a iz C#

Za autentifikaciju C# SMS klijenta, potrebno je poslati korisničko ime i lozinku u base64 kodiranom stringu na server u HTTP zahtjevu. Korišteni format je: base64(korisničko_ime+":"+lozinka). U C# možete koristiti sljedeći kod za ovu enkodiranje:

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

Na primjer, ako enkodirate korisničko ime 'http_user' i lozinku 'qwe123', dobit ćete sljedeći base64 kodirani string: aHR0cF91c2VyOnF3ZTEyMw==. Za slanje

HTTP zaglavlje zahtjeva za slanje SMS-a iz C#

Za slanje SMS poruka, potrebno je uključiti sljedeće retke kao zaglavlja u HTTP zahtjev. Imajte na umu da uključujemo tip sadržaja i Authorization zaglavlje.

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

HTTP zahtjev za slanje SMS-a iz C#

Za slanje SMS poruka, vaša C# aplikacija će poslati HTTP zahtjev sličan donjem primjeru. Imajte na umu da ovaj zahtjev sadrži dio HTTP zaglavlja i dio tijela HTTP-a. Tijelo HTTP-a je JSON kodirani podatkovni string. Sadrži broj primatelja i tekst poruke.

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": "Pozdrav, svijete 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": "Pozdrav, svijete 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": "Pozdrav, svijete 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 odgovor primljen od C# SMS primjera

Nakon što SMS gateway primi ovaj zahtjev, generirat će HTTP odgovor. HTTP odgovor će sadržavati statusni kod, kako bi naznačio je li zahtjev za slanje SMS-a uspješan ili ne. Također će vratiti JSON kodiranu strukturu koja vam pruža korisne detalje o slanju poruke.

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": "Poruke su u redu za isporuku.",
  "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": "Pozdrav, svijete 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": "Pozdrav, svijete 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": "Pozdrav, svijete 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 primjer: SendMultipleSms.sln

Kako preuzeti projekt SendMultipleSMS.sln (Video tutorial)

U sljedećem videu naučit ćete kako možete koristiti SendMultipleSMS.sln C# projekt. Video će započeti sa stranicom za preuzimanje i vodit će vas sve do otvorenog panela uređivača koda. Naučit ćete kako preuzeti i otvoriti datoteku s kodom. Video traje samo 54 sekunde, ali sadrži sve potrebne informacije za uspješno korištenje primjer datoteke s kodom.

Video 1 - Kako preuzeti i otvoriti gore navedeno rješenje (Video tutorial)

Primjer koda u nastavku dio je SendMultipleSms.sln Visual Studio rješenja. Visual studio rješenje može sadržavati više projekata i više datoteka. U ovom rješenju postoji samo jedan projekt: SendMultipleSms.csproj, i jedna datoteka: Program.cs.

kako poslati više SMS poruka koristeći c sharp
Slika 3 - SendMultipleSms.sln

Kako koristiti projekt (Video tutorial)

U sljedećem isječku vidjet ćete kako možete pokrenuti SendMultipleSMS.cs C# kod. Video će započeti s otvorenim kodom i vodit će vas sve do kartice događaja s logom poslane poruke. Vidjet ćete kako pokrenuti kod i što se dogodilo ako je kod izvršen. Video je nešto kraći od 1 minute, ali sadrži sve informacije potrebne za pokretanje projekta.

Video 2 - Kako koristiti SendMultipleSms.cs rješenje (Video tutorial)

Pokretanje C# SMS primjera na Windowsu

Kada koristite Windows za pokretanje ovog SMS primjera napisanog u C#, primijetit ćete da dobivate nešto bolju performansu nego kada ga pokrenete na Linuxu. Da biste razumjeli zašto se to događa, morate imati na umu da C# koristi .NET framework za izvršavanje koda. To je zato što je .NET implementacija na Windowsu optimizirana za performanse, dok mono, .NET implementacija na Linuxu, još uvijek treba nadoknaditi u tom području.

Zaključak

Ovaj članak pokazao je korake slanja više SMS poruka u jednom zahtjevu iz C#. S ovim znanjem i pruženim alatima, trebali biste biti u stanju kontaktirati više korisnika s jednim kodom. Ozeki SMS Gateway ima važnu ulogu u ovom procesu jer ovaj program organizira isporuku poruka. Ozeki SMS Gateway radi s visokom kvalitetom i performansama, omogućujući vam slanje do 1000 SMS poruka u sekundi.

Nastavite svoje učenje na Ozekijevim stranicama s tutorijalima, gdje možete pročitati o temama kao što su planiranje SMS poruka i brisanje u C#.

Sada vam preostaje samo preuzeti Ozeki SMS Gateway i početi raditi!

More information