Kako poslati više SMS poruka iz F#
Najjednostavniji način za slanje SMS poruka iz F# je korištenje ugrađenog HTTP/Rest SMS API-ja Ozeki SMS Gatewaya. Kada koristite ovaj API, slanje SMS poruka vršite putem HTTP Post zahtjeva prema SMS gatewayu. HTTP Post zahtjev će sadržavati poruku formatiranu u json formatu. SMS gateway će poslati ovu SMS poruku na telefonski broj primatelja i vratit će HTTP 200 OK odgovor na vaš zahtjev.
F# kod za slanje više SMS poruka na mobilni telefon
F# SMS kod primjer ispod pokazuje kako možete poslati 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.fsopen System open Ozeki.Libs.Rest [<EntryPoint>] let main argv = let configuration = new Configuration ( Username = "http_user", Password = "qwe123", ApiUrl = "http://127.0.0.1:9509/api") let msg1 = new Message( ToAddress = "+36201111111", Text = "Hello, World 1") let msg2 = new Message( ToAddress = "+36202222222", Text = "Hello, World 2") let msg3 = new Message( ToAddress = "+36203333333", Text = "Hello, World 3") let messages = [msg1; msg2; msg3] let api = new MessageApi(configuration) let result = api.Send(messages) printfn $"{result.ToString()}" 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 koje pruža Ozeki.Libs.Rest biblioteka. Možete koristiti klasu Message za kreiranje SMS poruke. Možete koristiti klasu MessageApi za slanje SMS poruke prema SMS gatewayu. SMS gateway će proslijediti vašu poruku mobilnoj mreži putem bežične veze ili putem interneta.
Preuzmite SendMultipleSms.fs
Izvorni kod objašnjen u ovom članku može se preuzeti, koristiti i mijenjati besplatno.
Preuzmi: SendMultipleSms.fs.zip (59.6Kb)
Što se nalazi u datoteci SendMultipleSms.fs?
Datoteka SendMultipleSms.fs sadrži Ozeki.Libs.Rest biblioteku, koja vam daje sve alate potrebne za slanje i primanje SMS poruka. Također ćete pronaći SendMultipleSms projekt u zip datoteci, koji sadrži primjer koda koji pokazuje kako poslati više SMS poruka odjednom. Ovaj primjer koda je naveden ispod.
Kako poslati SMS iz F# (Brzi koraci)
Za slanje SMS poruka iz F#:
- Instalirajte Ozeki SMS Gateway
- Povežite Ozeki SMS Gateway s mobilnom mrežom
- Pošaljete testnu SMS poruku iz Ozeki GUI-a
- Kreirajte HTTP SMS API korisnika
- Pokrenite Visual Studio
- Kreirajte rješenje pod nazivom SendMultipleSms.sln
- Dodajte F# konzolni projekt: SendMultipleSms.fsproj
- Ubacite kod u Program.cs ili SendMultipleSms.fs
- Pročitajte HTTP odgovor
- Provjerite zapisnike u SMS gatewayu
Kako napisati svoj prvi F# program (Brzi koraci)
Za pisanje vašeg prvog F# programa:
- Postavite Visual Studio
- Preuzmite datoteku SendMultipleSms.fs.zip
- Raspakirajte .zip datoteku iz mape Preuzimanja
- Otvorite datoteku SendMultipleSms.sln u Visual Studiju
- Pokrenite Ozeki SMS Gateway aplikaciju
- Kliknite na HTTP korisnika na kartici Korisnici i aplikacije
- Pokrenite Program.fs u Visual Studiju
- Provjerite kutiju Poslano u Ozeki SMS Gatewayu
Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika
Da biste mogli slati SMS poruke 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 testnu SMS poruku 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 postavljanja okruženja, možete pokrenuti svoj F# kod.
HTTP API URL za slanje SMS poruka iz F#
Za slanje SMS poruka iz F#, vaš C# ć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, 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 to kodiranje:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
Na primjer, ako zakodirate 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, potrebno je uključiti sljedeće retke kao zaglavlja u HTTP zahtjev. 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 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.
HTTP request received from 127.0.0.1:56003 POST /api?action=sendmsg HTTP/1.1 Connection: Keep-Alive Content-Length: 983 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 { "messages": [ { "message_id": "dcea98a0-7338-406a-96c8-86ddf9ccc1b6", "to_address": "+36201111111", "text": "Hello, World 1", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "7af033fe-fc31-464a-b59a-992ec268f156", "to_address": "+36202222222", "text": "Hello, World 2", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "29be6c7d-2474-4ab2-ad3c-d8d58e1cdd76", "to_address": "+36203333333", "text": "Hello, World 3", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
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.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.118 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 08:44:45 GMT Server: 10/10.3.118 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Messages queued for delivery.", "data": { "total_count": 3, "success_count": 3, "failed_count": 0, "messages": [ { "message_id": "00da7d71-93f1-44c3-9975-4f9ce2ef6b28", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World 1", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "dde86f6d-7db6-4f77-aea2-2bafc8d09cf8", "from_station": "%", "to_address": "+36202222222", "to_station": "%", "text": "Hello, World 2", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "c2a3275c-7015-4462-bde3-db0c9d45701b", "from_station": "%", "to_address": "+36203333333", "to_station": "%", "text": "Hello, World 3", "create_date": "2021-06-11 14:04:52", "valid_until": "2021-06-18 14:04:52", "time_to_send": "2021-06-11 14:04:52", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
F# SMS primjer: SendMultipleSms.sln
Kako preuzeti i otvoriti projekt (Video vodič)
U ovom videu naučit ćete kako preuzeti primjer F# projekta. Video počinje sa stranicom za preuzimanje i završava na otvorenom projektu. Naučit ćete kako preuzeti projekt i što učiniti nakon toga. Video traje samo 1 minutu i vrlo je detaljan. Nećete imati problema s praćenjem koraka. Link za preuzimanje pronaći ćete na stranici s vodičem.
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.fsproj, i jedna datoteka: Program.fs.
Kako koristiti projekt (Video vodič)
U ovom videu naučit ćete kako koristiti projekt za slanje više SMS poruka odjednom uz pomoć F#. Video će početi s otvaranjem Ozeki SMS Gatewaya i odvest će vas sve do map s poslanim porukama. Naučit ćete kako pokrenuti kod i kako provjeriti mapu s poslanim porukama. Video vrijedi pogledati jer je jednostavan za praćenje i detaljan, ali traje samo 1 minutu.
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š treba nadoknaditi u tom području.
Sažetak
Kao što se moglo vidjeti u gore navedenom članku, slanje više SMS poruka u F# koristeći Ozeki SMS Gateway vrlo je jednostavno. Ovo rješenje omogućuje vam da kontaktirate više korisnika s jednim kodom, štedeći vrijeme i troškove. Važno je napomenuti da Ozeki SMS Gateway radi u okruženju koje kontrolirate, tako da su vaši podaci i popis kontakata u sigurnim rukama. Ako su koraci pažljivo praćeni, slanje poruka klijentima može se obaviti bez ikakvih komplikacija.
Nastavite svoje učenje na Ozekijevoj stranici s vodičima, gdje možete pronaći više o temama poput planiranja SMS poruka i primanja u F#.
Sljedeća stvar koju trebate učiniti je preuzeti Ozeki SMS Gateway i početi raditi!
More information