Kako prejeti SMS v 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 oblikovano v json formatu. SMS prehod bo poslal ta SMS prejemniku na telefon in vrnil HTTP 200 OK odgovor na vašo zahtevo.
Spodnji F# sms koda primer prikazuje, kako lahko prejemate SMS z uporabo http rest sms api-ja Ozeki SMS Gateway z uporabo knjižnice F# Ozeki.Libs.Rest. Ta knjižnica vam je na voljo brezplačno in jo lahko uporabljate in spreminjate v katerem koli od vaših projektov.
Program.fsopen 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 api = new MessageApi(configuration) let result = api.DownloadIncoming(); printfn $"There are {result.Length} messages in the inbox folder:" for message in result do printfn $"From: {message.FromAddress} - Text: {message.Text}" 0
Kako uporabiti F# sms primer:
Ta F# sms primer lahko uporabite v kateri koli .NET ali .NET core aplikaciji. Za uporabo morate dodati Ozeki.Libs.Rest dll kot referenco v vaš projekt. Po dodajanju reference projekta morate v glavo vaše F# izvorne kode dodati direktivo using Ozeki.Libs.Rest;. To vam bo omogočilo uporabo razredov, ki jih ponuja knjižnica Ozeki.Libs.Rest. Razred MessageApi lahko uporabite za prejemanje SMS iz SMS prehoda.
Prenesite ReceiveSms.fs
Izvorna koda, razložena v tem članku, je na voljo za brezplačen prenos in uporabo ter spreminjanje.
Prenos: ReceiveSms.fs.zip (51.2Kb)
Datoteka ReceiveSms.fs vsebuje knjižnico Ozeki.Libs.Rest, ki vam ponuja vsa orodja, potrebna za pošiljanje in prejemanje SMS sporočil. V zip datoteki boste našli tudi projekt ReceiveSms, ki vsebuje primer kode, ki vam pokaže, kako prejemati SMS. Ta primer kode je naveden spodaj.
Za prejemanje 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 ReceiveSms.sln
- Dodajte F# konzolni projekt: ReceiveSms.fsproj
- Vstavite kodo v Program.fs ali ReceiveSms.fs
- Ustvarite http zahtevo za prejem SMS
- Preberite HTTP odgovor
- Izpišite odgovor na konzolo
- Preverite dnevnike v SMS prehodu
Da lahko pošiljate SMS iz F#, morate najprej namestiti Ozeki SMS Gateway. SMS prehod lahko namestite na isti računalnik, 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. Končni 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 pripravljeno, lahko zaženete svojo F# kodo.
HTTP API url za prejemanje sms iz F#Za pošiljanje SMS iz F#, bo vaša F# aplikacija morala 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 vaša 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 odjemalca 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 za to kodiranje uporabite naslednjo kodo:
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
HTTP glava zahteve za prejem SMS iz F#Za pošiljanje SMS sporočil morate vključiti naslednje vrstice kot glave v HTTP zahtevo. Upoštevajte, da vključujemo content type in Authorization glavo.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP zahteva za prejemanje SMS z uporabo F#
Za oddajo SMS bo vaša F# aplikacija poslala HTTP zahtevo, podobno spodnji. Upoštevajte, da ta zahteva vsebuje del glave HTTP in del telesa HTTP. Telo HTTP je niz podatkov, kodiran v JSON. Vsebuje številko prejemnika in besedilo sporočila.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 Connection: Keep-Alive Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509
HTTP odziv, prejet v primeru F# SMS
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 zagotovila 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: 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" } ] } ] } }
Primer F# SMS: ReceiveSms.sln
Kako prenesti projekt ReceiveSms.sln (Video vadnica)
V tem videu se boste naučili, kako prenesti primer F# projekta. Video se začne s strani za prenos in konča z odprtim projektom. Naučili se boste, kako prenesti projekt in kaj z njim narediti za prejemanje SMS sporočil. Video je dolg le 58 sekund, vendar je zelo koristen. Zahvaljujoč temu, da je tako podroben, ne boste imeli težav pri sledenju korakom.
Spodnja primer kode je del ReceiveSms.sln rešitve Visual Studio. Visual studio rešitev lahko vsebuje več projektov in več datotek. V tej rešitvi sta samo dva projekta: ReceiveSms.fsproj, Ozeki.Libs.Rest.csproj, in ena datoteka: Program.fs.
Kako uporabiti projekt ReceiveSms.sln (Video vadnica)
V tem videu se boste naučili, kako uporabiti projekt za prejemanje SMS sporočil s pomočjo F#. Video se bo začel z odpiranjem Ozeki SMS prehoda in vas popelje vse do preverjanja ukazne vrstice s prejetimi sporočili. Video je dolg le 54 sekund in zelo podroben. Zaradi tega ne boste imeli težav pri sledenju vadnici.
Zagon primera F# SMS v sistemu Windows
Ko uporabljate Windows za zagon tega primera SMS, 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# za izvajanje kode uporablja ogrodje .NET. To je zato, ker je izvedba .NET v sistemu Windows optimizirana za zmogljivost, medtem ko ima mono, izvedba .NET na Linuxu, na tem področju še nekaj za ujeti.
Zaključek
Članek zgoraj je razložil korake za prejemanje SMS v F# z uporabo Ozeki SMS Gateway. S to rešitvijo lahko prejemate besedilna sporočila od svojih strank v vaš program F# s pomočjo Ozeki SMS Gateway. Pomembno je omeniti, da Ozeki SMS Gateway deluje v kateri koli državi in lahko pošilja in prejema SMS prek različnih mobilnih povezav, zato vam ni treba skrbeti, če informacijska izmenjava postane mednarodna.
Če želite nadaljevati z učenjem, obiščite Ozekijevo stran z vadnicami, kjer najdete več informacij o temah, kot so načrtovanje v F#.
Zdaj vam preostane le še, da prenesete Ozeki SMS Gateway in začnete z delom!
More information
- Kako poslati SMS iz F#
- Kako poslati več SMS iz F#
- F# načrtuj SMS z HTTP rest API (vzorec kode)
- F# prejmi SMS z HTTP rest API (vzorec kode)
- F# izbriši SMS z HTTP rest API (vzorec kode)
- Github: F# SMS API
- SMS nuget knjižnica za F#