Kako poslati zakazane SMS poruke 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 primaocu na telefon i vratiće HTTP 200 OK odgovor na vaš zahtev.

c zakazivanje sms za buduću isporuku
Slika 1 - C# zakazivanje SMS poruke za buduću isporuku

C# kod za slanje zakazanih SMS poruka na mobilni telefon

C# SMS primer koda ispod pokazuje 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.

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

namespace SendScheduledSms
{
    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 = "Zdravo, svete!",
                TimeToSend = DateTime.Parse("2021-06-11 13:25:00")
            };


            var api = new MessageApi(configuration);

            var result = api.Send(msg);

            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 što je referenca projekta dodata, 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 pošaljete SMS ka SMS gateway-u. SMS gateway će proslediti vašu poruku mobilnoj mreži bilo preko bežične veze ili preko interneta.

Preuzmite SendScheduledSms.cs

Izvorni kod objašnjen u ovom članku može se preuzeti, koristiti i modifikovati besplatno.
Preuzimanje: SendScheduledSms.cs.zip (34.2Kb)

Šta se nalazi u SendScheduledSms.cs fajlu?

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

direktorijum za slanje zakazanih sms poruka u c#
Slika 2 - Šta se nalazi unutar SendScheduledSms.cs.zip

Kako poslati zakazane SMS poruke iz C# (Jednostavne smernice)

Da biste poslali zakazane SMS poruke iz C#:

  1. Instalirajte HTTP API korisnika
  2. Podesite Visual Studio
  3. Preuzmite SendScheduledSms.cs.zip fajl
  4. Ekstrahujte .zip fajl iz foldera Preuzimanja
  5. Otvorete SendScheduledSms.sln fajl u Visual Studio-u
  6. Dodajte Ozeki.Libs.Rest dll kao referencu
  7. Uredite fajl da biste zakazali SMS iz C#
  8. Pokrenite Ozeki SMS Gateway
  9. Pokrenite Program.cs u Visual Studio-u da biste poslali SMS iz C#
  10. Proverite logove
Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika

Da biste mogli da šaljete SMS 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 test SMS 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 postavljeno, možete pokrenuti svoj C# kod.

HTTP API URL za slanje SMS iz C#

Da biste poslali SMS iz C#, vaš C# ć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 iz C#

Da biste autentifikovali C# SMS klijenta, potrebno je da pošaljete korisničko ime i lozinku u base64 kodiranom stringu ka 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==. Da biste poslali

HTTP заглавље захтева за слање SMS-а из C#

Да бисте послали SMS поруке, потребно је да укључите следеће редове као заглавља у HTTP захтев. Имајте на уму да укључујемо тип садржаја и Authorization заглавље.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP захтев за слање заказаног SMS-а из C#

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

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:9511

{
  "messages": [
    {
      "message_id": "212a019e-a6f5-46f8-80e5-abddb273451b",
      "to_address": "+36201111111",
      "text": "Zdravo, svete!",
      "create_date": "2021-06-11 13:20:09",
      "valid_until": "2021-06-18 13:20:09",
      "time_to_send": "2021-06-11 13:25:00",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    }
  ]
}
HTTP одговор примљен у C# SMS примеру

Када SMS gateway прими овај захтев, генерисаће HTTP одговор. HTTP одговор ће садржати статусни код, који указује да ли је захтев за слање SMS-а био успешан или не. Такође ће вратити JSON кодирану структуру која вам пружа корисне детаље о слању поруке.

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": "Поруке су стављене у ред за слање.",
  "data": {
    "total_count": 1,
    "success_count": 1,
    "failed_count": 0,
    "messages": [
      {
        "message_id": "212a019e-a6f5-46f8-80e5-abddb273451b",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Zdravo, svete!",
        "create_date": "2021-06-11 13:20:09",
        "valid_until": "2021-06-18 13:20:09",
        "time_to_send": "2021-06-11 13:25:00",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}
C# SMS пример: SendSMS.sln Како преузети пројекат (Видео туторијал)

У овом видеу, показаћемо вам како да отворите пројекат SendSMS.sln и почнете да радите са њим. Видео ће почети са страницом туторијала и линком за преузимање и водиће вас до отвореног кода. Научићете како да преузмете пројекат и како да га отворите. Видео траје само 1 минут, али садржи све неопходне информације да бисте отворили пројекат SendSMS.sln за слање заказаних SMS-а.

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

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

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

Овај видео вам представља како да користите пројекат SendSMS.sln за слање заказаних SMS-а. Почеће са отвореним пројектом и завршиће се са логом послатих порука. Научићете како да додате време када желите да пошаљете поруку и како да покренете код. Након тога, моћи ћете да проверите картицу Events са логом за слање SMS-а. Видео траје само 80 секунди, а садржи све важне кораке. Нећете имати проблема да пратите туторијал.

Видео 2 - Како послати заказани SMS користећи решење горе (Видео туторијал)

Слика 3 - SendScheduledSms.sln

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

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

Rezime

Gore navedeni članak objasnio je korake za zakazivanje SMS poruka iz C#-a. Ozeki pruža sve alate i uputstva, tako da završetak ovog vodiča znači da biste trebali biti u mogućnosti da zakazujete svoje poruke koristeći C# i Ozeki SMS Gateway.

Zakazivanje SMS poruka je zaista korisno ako želite da šaljete informacije kupcima i takođe želite da budete sigurni da imaju vremena da obrate pažnju na poruku. Na ovaj način možete biti sigurni da poruka neće biti zanemarena ili zaboravljena jer će njihovi zauzeti sati biti izbegnuti. Važno je napomenuti da Ozeki SMS Gateway nudi izuzetne mogućnosti evidentiranja, tako da se greške koje se pojave mogu lako i brzo pratiti.

Nastavite svoje učenje na Ozeki-jevim stranicama sa tutorijalima, gde možete dobiti više informacija o sličnim temama, kao što su brisanje u C#-u.

Sada vam preostaje samo da preuzmete Ozeki SMS Gateway i neka rad počne!

More information