Kako primiti SMS u 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 SMS gatewayu. HTTP Post zahtjev će sadržavati poruku formatiranu u json formatu. SMS gateway će poslati ovaj SMS primatelju, i vratit će HTTP 200 OK odgovor na vaš zahtjev.

F# kod za primanje SMS-a
F# sms primjer koda ispod pokazuje kako možete primiti SMS koristeći http rest sms api Ozeki SMS Gatewaya koristeći F# Ozeki.Libs.Rest biblioteku. Ova biblioteka vam je dostupna besplatno, i možete je koristiti i mijenjati u bilo kojem od vaših projekata.
Program.fs1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
open Ozeki.Libs.Rest [<EntryPoint>] let main argv = let configuration = new Configuration ( Username = "http_user" , Password = "qwe123" , let api = new MessageApi(configuration) let result = api.DownloadIncoming(); printfn $ "Postoji {result.Length} poruka u mapi dolaznih poruka:" for message in result do printfn $ "Od: {message.FromAddress} - Tekst: {message.Text}" 0 |
Kako koristiti F# sms primjer:
Ovaj F# 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, morate staviti direktivu using Ozeki.Libs.Rest; u zaglavlje vašeg F# izvornog koda. To će vam omogućiti korištenje klasa dostupnih u Ozeki.Libs.Rest biblioteci. Možete koristiti klasu MessageApi za primanje SMS-a iz SMS gatewaya.
Preuzmite ReceiveSms.fs
Izvorni kod objašnjen u ovom članku može se preuzeti, koristiti i mijenjati besplatno.
Preuzmi: ReceiveSms.fs.zip (51.2Kb)
Što je u datoteci ReceiveSms.fs?
Datoteka ReceiveSms.fs sadrži Ozeki.Libs.Rest biblioteku, koja vam daje sve alate potrebne za slanje i primanje SMS poruka. Također ćete pronaći projekt ReceiveSms u zip datoteci, koji sadrži primjer koda koji pokazuje kako primiti SMS. Ovaj primjer koda je naveden ispod.

Kako primiti SMS iz F# (Brzi koraci)
Da biste primili SMS iz F#:
- Instalirajte Ozeki SMS Gateway
- Povežite Ozeki SMS Gateway s mobilnom mrežom
- Pošaljite testni SMS iz Ozeki GUI-a
- Kreirajte HTTP sms api korisnika
- Pokrenite Visual Studio
- Kreirajte rješenje pod nazivom ReceiveSms.sln
- Dodajte F# konzolni projekt: ReceiveSms.fsproj
- Stavite kod u Program.fs ili ReceiveSms.fs
- Kreirajte http zahtjev za primanje SMS-a
- Pročitajte HTTP odgovor
- Ispišite odgovor na konzolu
- Provjerite zapisnike u SMS gatewayu
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 korisnika. Kreirajte korisnika s korisničkim imenom "http_user", i lozinkom "qwe123" kako bi primjer radio bez modifikacija.
Nakon što je okruženje postavljeno, možete pokrenuti svoj F# kod.
HTTP API url za primanje SMS-a iz F#
Da biste poslali SMS iz F#, vaš F# ć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 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.
1 |
http: //127.0.0.1:9509/api?action=rest |
HTTP autentifikacija za primanje SMS-a iz F#
Da biste autentificirali F# sms klijent, morate poslati korisničko ime i lozinku u base64 kodiranom stringu na poslužitelj u HTTP zahtjevu. Korišteni format je: base64(korisničko_ime+":"+lozinka). U C# možete koristiti sljedeći kod za ovo kodiranje:
1 2 3 |
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 primanje SMS-a iz F#
Da biste poslali SMS poruke, morate uključiti sljedeće linije kao zaglavlja u HTTP zahtjevu. Imajte na umu da uključujemo content type i Authorization zaglavlje.
1 2 |
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Da biste poslali SMS, 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.
1 2 3 4 5 |
GET /api?action=receivemsg&folder=inbox HTTP/1.1 Connection: Keep-Alive Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 |
HTTP odgovor primljen od F# 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.116 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Thu, 10 Jun 2021 11:02:26 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code" : 200, "response_code" : "SUCCESS" , "response_msg" : "" , "data" : { "folder" : "inbox" , "limit" : "1000" , "data" : [ { "message_id" : "94219121-e5b5-4845-9721-074f5307c9a4" , "from_connection" : "http_user@localhost" , "from_address" : "+36203333333" , "from_station" : "%" , "to_connection" : "http_user@localhost" , "to_address" : "http_user" , "to_station" : "%" , "text" : "Hello world 3" , "create_date" : "2021-06-10 11:46:16" , "valid_until" : "2021-06-17 11:46:16" , "time_to_send" : "2021-06-10 11:46:16" , "submit_report_requested" : true , "delivery_report_requested" : true , "view_report_requested" : true , "tags" : [ { "name" : "Type" , "value" : "SMS:TEXT" } ] }, { "message_id" : "d6f832b2-dbc8-4b1b-8b47-44b3bb6658bf" , "from_connection" : "http_user@localhost" , "from_address" : "+36202222222" , "from_station" : "%" , "to_connection" : "http_user@localhost" , "to_address" : "http_user" , "to_station" : "%" , "text" : "Hello world 2" , "create_date" : "2021-06-10 11:46:16" , "valid_until" : "2021-06-17 11:46:16" , "time_to_send" : "2021-06-10 11:46:16" , "submit_report_requested" : true , "delivery_report_requested" : true , "view_report_requested" : true , "tags" : [ { "name" : "Type" , "value" : "SMS:TEXT" } ] }, { "message_id" : "0bf86b3a-e4a9-4d8e-970c-ed486b02db7a" , "from_connection" : "http_user@localhost" , "from_address" : "+362011111111" , "from_station" : "%" , "to_connection" : "http_user@localhost" , "to_address" : "http_user" , "to_station" : "%" , "text" : "Hello world 1" , "create_date" : "2021-06-10 11:46:16" , "valid_until" : "2021-06-17 11:46:16" , "time_to_send" : "2021-06-10 11:46:16" , "submit_report_requested" : true , "delivery_report_requested" : true , "view_report_requested" : true , "tags" : [ { "name" : "Type" , "value" : "SMS:TEXT" } ] } ] } } |
F# SMS primjer: ReceiveSms.sln
Kako preuzeti projekt ReceiveSms.sln (Video tutorijal)
U ovom videu naučit ćete kako preuzeti primjer F# projekta. Video počinje sa stranicom za preuzimanje i završava s otvorenim projektom. Naučit ćete kako preuzeti projekt i što učiniti s njim kako biste primali SMS poruke. Video traje samo 58 sekundi, ali je vrlo koristan. Zahvaljujući detaljnom prikazu, nećete imati problema s praćenjem koraka.
Primjer koda u nastavku dio je ReceiveSms.sln Visual Studio rješenja. Visual studio rješenje može sadržavati više projekata i više datoteka. U ovom rješenju nalaze se samo dva projekta: ReceiveSms.fsproj, Ozeki.Libs.Rest.csproj, i jedna datoteka: Program.fs.

Kako koristiti projekt ReceiveSms.sln (Video tutorijal)
U ovom videu naučit ćete kako koristiti projekt za primanje SMS poruka uz pomoć F#. Video će započeti s otvaranjem Ozeki SMS Gatewaya i odvesti vas do provjere naredbenog retka s primljenim porukama. Video traje samo 54 sekunde i vrlo je detaljan. Zbog toga nećete imati problema s praćenjem tutorijala.
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čakGore navedeni članak objasnio je korake primanja SMS poruka u F# koristeći Ozeki SMS Gateway. S ovim rješenjem, možete primati tekstualne poruke od svojih kupaca u svoj F# program uz pomoć Ozeki SMS Gatewaya. Važno je napomenuti da Ozeki SMS Gateway radi u bilo kojoj zemlji i može slati i primati SMS poruke putem različitih mobilnih veza, tako da ne morate brinuti ako razmjena informacija postane međunarodna.
Kako biste nastavili svoje učenje, posjetite Ozeki-ovu stranicu s tutorijalima gdje možete pronaći više informacija o temama poput planiranja u F#.
Sada vam preostaje samo preuzeti Ozeki SMS Gateway i početi s radom!
More information
- Kako poslati SMS iz F#
- Kako poslati više SMS-ova iz F#
- F# zakazani SMS s HTTP REST API-jem (primjer koda)
- F# primi SMS s HTTP REST API-jem (primjer koda)
- F# izbriši SMS s HTTP REST API-jem (primjer koda)
- Github: F# SMS API
- SMS NuGet biblioteka za F#