Kako poslati više SMS poruka iz C#

Najjednostavniji način za slanje SMS poruka iz C# je korišćenje ugrađenog HTTP/Rest SMS API-ja Ozeki SMS Gateway-a. Kada koristite ovaj API, slaćete SMS poruke tako što ćete poslati HTTP Post zahtev ka SMS gateway-u. HTTP Post zahtev će sadržati poruku formatiranu u json formatu. SMS gateway će poslati ovu SMS poruku na telefon primaoca, i vratiće HTTP 200 OK odgovor na vaš zahtev.

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

C# kod za slanje više SMS poruka na mobilni telefon

C# SMS primer koda ispod demonstrira kako možete poslati SMS koristeći HTTP REST SMS API Ozeki SMS Gateway-a koristeći C# Ozeki.Libs.Rest biblioteku. Ova biblioteka vam je dostupna besplatno, i možete je koristiti i modifikovati u bilo kom 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 = "Zdravo, svete 1"
            };

            var msg2 = new Message()
            {
                ToAddress = "+362222222",
                Text = "Zdravo, svete 2"
            };

            var msg3 = new Message()
            {
                ToAddress = "+363333333",
                Text = "Zdravo, svete 3"
            };

            var api = new MessageApi(configuration);

            var result = api.Send(new Message[]{ msg1, msg2, msg3 });

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

Kako koristiti C# SMS primer:

Ovaj C# SMS primer 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š projekat. Nakon dodavanja reference u projekat, morate staviti direktivu using Ozeki.Libs.Rest; u zaglavlje vašeg C# izvornog koda. Ovo će vam omogućiti da koristite klase koje pruža Ozeki.Libs.Rest biblioteka. Možete koristiti klasu Message za kreiranje SMS poruke. Možete koristiti klasu MessageApi da biste poslali SMS ka SMS gateway-u. SMS gateway će proslediti 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 modifikovati.
Preuzimanje: SendMultipleSms.cs.zip (34.5Kb)

Šta se nalazi u SendMultipleSms.cs fajlu?

SendMultipleSms.cs fajl sadrži Ozeki.Libs.Rest biblioteku, koja vam daje sve potrebne alate za slanje i primanje SMS poruka. Takođe ćete naći SendMultipleSms projekat u zip arhivi, koji sadrži primer koda koji pokazuje kako poslati SMS poruku. Ovaj primer koda je prikazan ispod.

direktorijum za slanje više SMS poruka iz C#
Slika 2 - Šta se nalazi u SendMultipleSms.cs.zip

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

Da biste poslali više SMS poruka iz C#:

  1. Podesite Visual Studio Community
  2. Preuzmite Send-multiple-SMS.cs.zip fajl
  3. Raspakujte .zip fajl iz foldera Preuzimanja
  4. Otvorite SendMultipleSms.sln fajl u Visual Studio-u
  5. Pokrenite Ozeki SMS Gateway
  6. Kreirajte HTTP API korisnika u Ozeki-ju
  7. Pokrenite Program.cs C# kod u Visual Studio-u da biste poslali testne SMS poruke
  8. Proverite Sent kutiju u Ozeki SMS Gateway-u
Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika

Da biste mogli da šaljete SMS poruke iz C#, prvo morate instalirati Ozeki SMS Gateway. SMS gateway može biti instaliran na istom računaru gde razvijate svoj C# kod u Visual Studio-u. Nakon instalacije, sledeći korak je da povežete Ozeki SMS Gateway sa mobilnom mrežom. Možete poslati testnu SMS poruku iz Ozeki GUI-a da biste potvrdili da vaša mobilna mrežna veza radi. Poslednji korak za pripremu vašeg okruženja je da kreirate HTTP SMS API korisnički nalog. Kreirajte korisnika sa korisničkim imenom "http_user", i lozinkom "qwe123" kako bi primer radio bez modifikacija.

Nakon što je okruženje podešeno, 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 da pošalje HTTP zahtev ka SMS gateway-u. API URL je prikazan ispod. Imajte na umu da IP adresa (127.0.0.1) treba da bude zamenjena sa IP adresom vašeg SMS gateway-a. Ako je Ozeki SMS Gateway instaliran na istom računaru gde se pokreće C# SMS aplikacija, ovo može biti 127.0.0.1. Ako je instaliran na drugom računaru, treba da bude IP adresa tog računara.

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

HTTP autentifikacija za slanje SMS-a iz C#

Da biste autentifikovali C# SMS klijent, potrebno je poslati korisničko ime i lozinku u base64 kodiranom stringu serveru u HTTP zahtevu. Korišćeni format je: base64(korisničko_ime+":"+lozinka). U C# možete koristiti sledeći kod za ovo kodiranje:

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

Na primer, ako kodirate korisničko ime 'http_user' i lozinku 'qwe123', dobićete sledeći base64 kodirani string: aHR0cF91c2VyOnF3ZTEyMw==. Za slanje

HTTP zaglavlje zahteva za slanje SMS-a iz C#

Za slanje SMS poruka, potrebno je uključiti sledeće linije kao zaglavlja u HTTP zahtev. Imajte na umu da uključujemo Content-Type i Authorization zaglavlje.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP zahtev za slanje SMS-a iz C#

Za slanje SMS poruka, vaša C# aplikacija će poslati HTTP zahtev sličan onome ispod. Imajte na umu da ovaj zahtev sadrži deo sa HTTP zaglavljem i deo sa HTTP telom. HTTP telo je JSON kodirani string podataka. Sadrži broj primaoca 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": "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 odgovor primljen u C# SMS primeru

Nakon što SMS gateway primi ovaj zahtev, generisaće HTTP odgovor. HTTP odgovor će sadržati statusni kod, kako bi naznačio da li je zahtev za slanje SMS-a bio uspešan ili ne. Takođe ć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 stavljene u red 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": "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 primer: SendMultipleSms.sln

Како преузети пројекат SendMultipleSMS.sln (Видео туторијал)

У следећем видеу, научићете како можете користити SendMultipleSMS.sln C# пројекат. Видео ће почети са страницом за преузимање и водиће вас све до отвореног панела едитора кода. Научићете како да преузмете и отворите датотеку са кодом. Видео траје само 54 секунде, али садржи све неопходне информације које су вам потребне за успешно коришћење примера кода.

Видео 1 - Како преузети и отворити решење горе (Видео туторијал)

Пример кода испод је део SendMultipleSms.sln Visual Studio решења. Visual studio решење може садржати више пројеката и више датотека. У овом решењу постоји само један пројекат: SendMultipleSms.csproj, и једна датотека: Program.cs.

how to send multiple sms using c sharp
Слика 3 - SendMultipleSms.sln

Како користити пројекат (Видео туторијал)

У следећем клипу, видећете како можете покренути SendMultipleSMS.cs C# код. Видео ће почети са отвореним кодом и водиће вас све до картице догађаја са логом послате поруке. Видећете како покренути код и шта се дешава ако је код извршен. Видео је мало краћи од 1 минута, али садржи све информације неопходне за покретање пројекта.

Видео 2 - Како користити SendMultipleSms.cs решење (Видео туторијал)

Покретање C# SMS примера на Windows-у

Када користите Windows за покретање овог SMS примера написаног у C#, приметићете да добијате нешто боље перформансе него када га покренете на Linux-у. Да бисте разумели зашто се то дешава, морате имати на уму да C# користи .NET framework за извршавање кода. То је зато што је .NET имплементација на Windows-у оптимизована за перформансе, док mono, .NET имплементација на Linux-у, има још мало посла у том погледу.

Закључак

Овај чланак је показао кораке за слање више SMS-ова у једном захтеву из C#. Са овим знањем и пруженим алаткама, требало би да будете у могућности да контактирате више купаца са једним јединим кодом. Ozeki SMS Gateway има важну улогу у овом процесу јер овај програм организује испоруку порука. Ozeki SMS Gateway ради са високим квалитетом и перформансама, омогућавајући вам да пошаљете до 1000 SMS-ова у секунди.

Наставите своје учење на Ozeki-јевим страницама са туторијалима, где можете прочитати о темама као што су планирање SMS-ова и брисање у C#.

Сада је једино што вам преостаје да преузмете Ozeki SMS Gateway и почнете са радом!

More information