Kako poslati SMS iz F#

Najjednostavniji način za slanje SMS-a iz F# 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 prema SMS gatewayu. HTTP Post zahtjev će sadržavati poruku formatiranu u json formatu. SMS gateway će poslati ovaj SMS primatelju na telefon i vratit će HTTP 200 OK odgovor na vaš zahtjev.

kako poslati sms iz f
Slika 1 - Kako poslati SMS iz F#

Primjer koda za slanje SMS-a u F#

Program.fs
open System
open Ozeki.Libs.Rest

[]
let main argv =
    let configuration = new Configuration (
        Username = "http_user",
        Password = "qwe123",
        ApiUrl = "http://127.0.0.1:9509/api")

    let msg = new Message(
        ToAddress = "+36201111111", 
        Text = "Pozdrav, svijete!")

    let api = new MessageApi(configuration)

    let result = api.Send(msg)

    printfn $"{result.ToString()}"
    0

Preuzmite SendSms.fs

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

Što se nalazi u datoteci SendSms.fs.zip?

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

Slika 2 - Što se nalazi unutar SendSms.fs.zip

Kako poslati SMS iz F# (Brzi koraci)

Za slanje SMS-a iz F#:

  1. Instalirajte Ozeki SMS Gateway
  2. Povežite Ozeki SMS Gateway s mobilnom mrežom
  3. Pošaljite testni SMS iz Ozeki GUI-a
  4. Kreirajte HTTP SMS API korisnika
  5. Pokrenite Visual Studio
  6. Kreirajte rješenje pod nazivom SendSms.sln
  7. Dodajte F# konzolni projekt: SendSms.fsproj
  8. Stavite kod u Program.fs ili SendSms.fs
  9. Pročitajte HTTP odgovor
  10. Provjerite zapisnike u SMS gatewayu

Kako napisati svoj prvi F# program (Brze naredbe)

Za pisanje vašeg prvog F# programa:

  1. Postavite Visual Studio
  2. Preuzmite datoteku SendSms.fs.zip
  3. Raspakirajte .zip datoteku iz mape Preuzimanja
  4. Otvorite datoteku SendSms.sln u Visual Studiju
  5. Pokrenite Ozeki SMS Gateway aplikaciju
  6. Kliknite na HTTP korisnika na kartici Korisnici i aplikacije
  7. Pokrenite SendSMS.fs u Visual Studiju
  8. Provjerite kutiju Poslano u Ozeki SMS Gatewayu
  9. Odaberite SMPP klijentsku vezu na početnoj stranici
  10. Označite sve potvrdne okvire Log level na kartici Napredno u izborniku Konfiguriraj
  11. Ponovno pokrenite Program.fs u Visual Studiju
  12. Pronađite događaj ako je primatelj primio vašu poruku

Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika

Da biste mogli slati SMS iz F#, prvo morate instalirati Ozeki SMS Gateway. SMS gateway se može instalirati na istom računalu na kojem razvijate svoj F# 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 F# kod.

HTTP API URL za slanje SMS-a iz F#

Da biste poslali SMS iz F#, vaš F# će morati poslati HTTP zahtjev prema 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 F# 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 F#

Za autentifikaciju F# SMS klijenta, morate poslati korisničko ime i lozinku u base64 kodiranom stringu prema poslužitelju u HTTP zahtjevu. Korišteni format je: base64(korisničko_ime+":"+lozinka). U C# možete koristiti sljedeći kod za ovo kodiranje:

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

Na primjer, ako kodirate 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 F#

Za slanje SMS poruka, morate uključiti sljedeće retke kao zaglavlja u HTTP zahtjevu. Imajte na umu da uključujemo content type i Authorization zaglavlje.

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

HTTP zahtjev za slanje SMS-a iz F#

Za slanje SMS-a, vaša F# aplikacija će poslati HTTP zahtjev sličan onome ispod. Imajte na umu da ovaj zahtjev sadrži dio HTTP zaglavlja i dio HTTP tijela. HTTP tijelo je JSON kodirani niz podataka. Sadrži broj primatelja i tekst poruke.

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": "9380ab2d-a185-4cc1-abad-c18ec459e40f",
      "to_address": "+36201111111",
      "text": "Hello, World!",
      "create_date": "2021-06-11 13:45:30",
      "valid_until": "2021-06-18 13:45:30",
      "time_to_send": "2021-06-11 13:45:30",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    }
  ]
}

HTTP odgovor primljen u F# SMS primjeru

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 uspio 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 stavljene u red za isporuku.",
  "data": {
    "total_count": 1,
    "success_count": 1,
    "failed_count": 0,
    "messages": [
      {
        "message_id": "9380ab2d-a185-4cc1-abad-c18ec459e40f",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello, World!",
        "create_date": "2021-06-11 13:45:30",
        "valid_until": "2021-06-18 13:45:30",
        "time_to_send": "2021-06-11 13:45:30",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}

Kako poslati SMS iz F# (Video tutorial)

Ovaj video vam pokazuje kako stvoriti novi .Net core konzolni projekt u Visual Studiju, kako ga nazvati SendSms.sln. Nakon što je rješenje stvoreno, možete primijetiti da je SendSms.fsproj dodan u rješenje, a po defaultu se otvara Program.cs datoteka. Možete preimenovati Program.fs u SendSms.fs ako želite. Također ćete vidjeti u videu kako se primjer koda ispod može kopirati u Program.fs datoteku, te kako se može kompajlirati i izvršiti.

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

SendSms.sln

Primjer koda ispod je dio SendSms.sln Visual Studio rješenja. Visual studio rješenje može sadržavati više projekata i više datoteka. U ovom rješenju postoje samo dva projekta: SendSms.fsproj, Ozeki.Libs.Rest.csproj, i jedna datoteka: Program.fs.

Slika 3 - SendSms.sln

Kako provjeriti je li SMS prihvaćen od strane HTTP korisnika

Nakon što je SMS poslan, dobro je provjeriti vaš SMS gateway, kako biste vidjeli što je primio. Dnevnik možete provjeriti otvaranjem detalja HTTP korisnika iz Ozeki SMS Gateway upravljačke konzole. Sljedeći video vam pokazuje što trebate tražiti.

Video 2 - Kako poslati SMS s F# kodom iznad (Video tutorial)

Kako provjeriti je li SMS poslan na mobilnu mrežu

Završni korak u provjeri postupka je pogledati dnevnike veze s mobilnom mrežom. Možda ćete morati uključiti bilježenje u konfiguraciji veze prije nego što pošaljete poruku kako biste vidjeli dnevnike. Ako je bilježenje uključeno, vidjet ćete broj telefona i tekst poruke koju ste poslali.

Video 3 - Kako uključiti bilježenje u Ozeki SMS Gatewayu (Video tutorial)

Pokretanje F# SMS primjera na Windowsu

Kada koristite Windows za pokretanje ovog SMS primjera napisanog u F#, primijetit ćete da dobivate nešto bolju performansu nego kada ga pokrećete na Linuxu. Da biste razumjeli zašto se to događa, morate imati na umu da F# 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

Gornji članak pokazao je korake slanja SMS-a u F#-u. S danim uputama, slanje poruka s F#-om i Ozeki SMS Gateway-om je brzo i jednostavno. Ozeki SMS Gateway nudi izvrsne mogućnosti bilježenja, tako da se pogreške mogu lako pratiti. Vi ili vaša organizacija možete brzo kontaktirati korisnike s ovim rješenjem, a kao što se vidjelo, nije potrebno biti stručnjak u F#-u.

Za nastavak učenja, posjetite Ozeki-ovu stranicu s tutorijalima, gdje se može pronaći više informacija o radu s F#-om, kao što su planiranje SMS-ova.

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

More information