Kako poslati SMS iz F#
Najenostavnejši način za pošiljanje SMS iz F# je uporaba vgrajenega HTTP/Rest SMS API-ja Ozeki SMS Gateway. Ko uporabljate ta API, boste pošiljali SMS sporočila z izdajo HTTP Post zahteve do SMS prehoda. HTTP Post zahteva bo vsebovala sporočilo v json formatu. SMS prehod bo poslal ta SMS prejemniku in vrnil HTTP 200 OK odgovor na vašo zahtevo.
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 = "Hello, World!") let api = new MessageApi(configuration) let result = api.Send(msg) printfn $"{result.ToString()}" 0
Izvorna koda, razložena v tem članku, je na voljo za brezplačen prenos, uporabo in spreminjanje.
Prenos: SendSms.fs.zip (59,4Kb)
Datoteka SendSms.fs.zip vsebuje knjižnico Ozeki.Libs.Rest, ki vam omogoča vse orodja, potrebna za pošiljanje in prejemanje SMS sporočil. V zip datoteki boste našli tudi projekt SendSms, ki vsebuje primer kode, ki vam pokaže kako poslati SMS. Ta primer kode je naveden spodaj.
Za pošiljanje SMS iz F#:
- Namestite Ozeki SMS Gateway
- Povežite Ozeki SMS Gateway z mobilnim omrežjem
- Pošljite testni SMS iz Ozeki GUI
- Ustvarite uporabnika HTTP SMS API
- Zaženite Visual Studio
- Ustvarite rešitev z imenom SendSms.sln
- Dodajte F# konzolni projekt: SendSms.fsproj
- Vstavite kodo v Program.fs ali SendSms.fs
- Preberite HTTP odgovor
- Preverite dnevnike v SMS prehodu
Za pisanje prvega F# programa:
- Nastavite Visual Studio
- Prenesite datoteko SendSms.fs.zip
- Razširite .zip datoteko iz mape Prenosi
- Odprite datoteko SendSms.sln v Visual Studiu
- Zaženite aplikacijo Ozeki SMS Gateway
- Kliknite na HTTP uporabnika na zavihku Uporabniki in aplikacije
- Zaženite SendSMS.fs v Visual Studiu
- Preverite polje Poslano v Ozeki SMS Gateway
- Izberite SMPP povezavo stranke na domači strani
- Označite vsa polja Log level na zavihku Napredno v meniju Konfiguracija
- Ponovno zaženite Program.fs v Visual Studiu
- Poiščite dogodek, če je prejemnik prejel vaše sporočilo
Da lahko pošiljate SMS iz F#, morate najprej namestiti Ozeki SMS Gateway. SMS prehod je mogoče namestiti na istem računalniku, kjer razvijate svojo F# kodo v Visual Studiu. Po namestitvi je naslednji korak povezovanje Ozeki SMS Gateway z mobilnim omrežjem. Lahko pošljete testni SMS iz Ozeki GUI, da preverite, ali vaša mobilna omrežna povezava deluje. Zadnji korak za pripravo vašega okolja je ustvarjanje uporabnika HTTP SMS API. Ustvarite uporabnika z uporabniškim imenom "http_user" in geslom "qwe123", da primer deluje brez sprememb.
Ko je okolje nastavljeno, lahko zaženete svojo F# kodo.
URL HTTP API za pošiljanje SMS iz F#Za pošiljanje SMS iz F#, bo vaš F# moral izdati HTTP zahtevo do SMS prehoda. API URL je prikazan spodaj. Upoštevajte, da je treba IP naslov (127.0.0.1) zamenjati z IP naslovom vašega SMS prehoda. Če je Ozeki SMS Gateway nameščen na istem računalniku, kjer teče F# SMS aplikacija, je to lahko 127.0.0.1. Če je nameščen na drugem računalniku, mora biti to IP naslov tega računalnika.
http://127.0.0.1:9509/api?action=rest
Za avtentikacijo F# SMS stranke morate poslati uporabniško ime in geslo v base64 kodiranem nizu na strežnik v HTTP zahtevi. Uporabljen format je: base64(uporabniško_ime+":"+geslo). V C# lahko uporabite naslednjo kodo za to kodiranje:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
Na primer, če kodirate uporabniško ime 'http_user' in geslo 'qwe123', boste dobili naslednji base64 kodiran niz: aHR0cF91c2VyOnF3ZTEyMw==. Za pošiljanje
Glava HTTP zahteve za pošiljanje SMS iz F#Za pošiljanje SMS sporočil morate vključiti naslednje vrstice kot glave v HTTP zahtevo. Upoštevajte, da vključujemo vrsto vsebine in glavo Avtorizacija.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP zahteva za pošiljanje SMS iz F#
Za oddajo SMS bo vaša F# aplikacija poslala HTTP zahtevo, podobno spodnji. Upoštevajte, da ta zahteva vsebuje del HTTP glave in del HTTP telesa. Telo HTTP je niz podatkov, kodiran v JSON. Vsebuje prejemnikovo številko in besedilo sporočila.
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 odziv, prejet v F# SMS primeru
Ko SMS prehod prejme to zahtevo, bo ustvaril HTTP odziv. HTTP odziv bo vseboval statusno kodo, ki označuje, ali je bila zahteva za oddajo SMS uspešna ali ne. Prav tako bo vrnil strukturo, kodirano v JSON, ki vam bo nudila koristne podrobnosti o oddaji sporočila.
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": "Messages queued for delivery.", "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 vadnica)
Ta video vam pokaže, kako ustvariti nov .Net core konzolni projekt v Visual Studiu, kako ga poimenovati v SendSms.sln. Ko je rešitev ustvarjena, boste morda opazili, da je SendSms.fsproj dodan v rešitev, in privzeto je odprta datoteka Program.cs. Lahko preimenujete Program.fs v SendSms.fs, če želite. V videu boste videli tudi, kako lahko spodnji primer kode kopirate v datoteko Program.fs in kako jo lahko prevedete in izvedete.
SendSms.sln
Spodnja primer kode je del SendSms.sln rešitve Visual Studio. Visual studio rešitev lahko vsebuje več projektov in več datotek. V tej rešitvi sta samo dva projekta: SendSms.fsproj, Ozeki.Libs.Rest.csproj, in ena datoteka: Program.fs.
Kako preveriti, ali je SMS sprejel HTTP uporabnik
Po oddaji SMS je dobro preveriti vaš SMS prehod, da vidite, kaj je prejel. Dnevnik lahko preverite tako, da odprete podrobnosti HTTP uporabnika iz konzole za upravljanje Ozeki SMS prehoda. Naslednji video vam pokaže, kaj morate iskati.
Kako preveriti, ali je SMS poslan v mobilno omrežje
Zadnji korak pri preverjanju postopka je pogledati dnevnike povezave z mobilnim omrežjem. Morda boste morali vklopiti beleženje v nastavitvah povezave, preden pošljete sporočilo, da vidite dnevnike. Če je beleženje omogočeno, boste videli telefonsko številko in besedilo sporočila, ki ste ga poslali.
Zagon F# SMS primera v Windows
Ko uporabljate Windows za zagon tega SMS primera, napisanega v F#, boste opazili, da dobite nekoliko boljšo zmogljivost kot pri zagonu na Linuxu. Da bi razumeli, zakaj se to zgodi, morate upoštevati, da F# uporablja ogrodje .NET za izvajanje kode. To je zato, ker je izvedba .NET v Windows optimizirana za zmogljivost, medtem ko ima mono, izvedba .NET v Linuxu, na tem področju še nekaj za ujeti.
Zaključek
Zgornji članek je prikazal korake za pošiljanje SMS-ov v F#. Z navedenimi navodili je pošiljanje sporočil s F# in Ozeki SMS Gateway hitro in preprosto. Ozeki SMS Gateway ponuja odlične možnosti beleženja, tako da je mogoče napake enostavno izslediti. Vi ali vaša organizacija lahko s to rešitvijo hitro stopite v stik s strankami in, kot je bilo videti, ni potrebno biti strokovnjak za F#.
Za nadaljnje študije obiščite Ozekijevo stran z vadnicami, kjer najdete več informacij o delu s F#, kot so urnikovanje SMS-ov.
Sedaj vam preostane le še, da prenesete Ozeki SMS Gateway in začnete z delom!
More information