Kako poslati več SMS sporočil 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 SMS sporočila pošiljali z izdajo HTTP Post zahteve proti SMS prehodu. HTTP Post zahteva bo vsebovala sporočilo oblikovano v json formatu. SMS prehod bo poslal ta SMS prejemniku in vrnil HTTP 200 OK odgovor na vašo zahtevo.

pošlji več SMS iz f
Slika 1 - Pošlji več SMS sporočil iz F#

F# koda za pošiljanje več SMS sporočil na mobilne naprave

F# SMS koda spodaj prikazuje, kako lahko pošiljate 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.fs
open 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 = "Pozdravljen, svet 1")

    let msg2 = new Message(
        ToAddress = "+36202222222", 
        Text = "Pozdravljen, svet 2")

    let msg3 = new Message(
        ToAddress = "+36203333333", 
        Text = "Pozdravljen, svet 3")

    let messages = [msg1; msg2; msg3]

    let api = new MessageApi(configuration)

    let result = api.Send(messages)

    printfn $"{result.ToString()}"
    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 morate v glavo vaše F# kode dodati direktivo using Ozeki.Libs.Rest;. To vam bo omogočilo uporabo razredov ki jih ponuja knjižnica Ozeki.Libs.Rest. Razred Message lahko uporabite za ustvarjanje SMS sporočila. Razred MessageApi lahko uporabite za pošiljanje SMS proti SMS prehodu. SMS prehod bo vaše sporočilo posredoval mobilnemu omrežju preko brezžične povezave ali preko interneta.

Prenesi SendMultipleSms.fs

Izvorna koda, razložena v tem članku, je na voljo za brezplačen prenos, uporabo in spreminjanje.
Prenos: SendMultipleSms.fs.zip (59,6Kb)

Kaj vsebuje datoteka SendMultipleSms.fs?

Datoteka SendMultipleSms.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 SendMultipleSms, ki vsebuje primer kode, ki prikazuje kako poslati več SMS sporočil hkrati. Ta primer kode je prikazan spodaj.

Slika 2 - Kaj vsebuje SendMultipleSms.fs.zip

Kako poslati SMS iz F# (Hitri koraki)

Za pošiljanje SMS iz F#:

  1. Namestite Ozeki SMS Gateway
  2. Povežite Ozeki SMS Gateway z mobilnim omrežjem
  3. Pošljite testno SMS sporočilo iz Ozeki GUI
  4. Ustvarite uporabnika za HTTP SMS API
  5. Zaženite Visual Studio
  6. Ustvarite rešitev z imenom SendMultipleSms.sln
  7. Dodajte F# konzolni projekt: SendMultipleSms.fsproj
  8. Vstavite kodo v Program.cs ali SendMultipleSms.fs
  9. Preberite HTTP odgovor
  10. Preverite dnevnike v SMS prehodu
Kako napisati svoj prvi F# program (Hitri koraki)

Za pisanje prvega F# programa:

  1. Nastavite Visual Studio
  2. Prenesite datoteko SendMultipleSms.fs.zip
  3. Razširite .zip datoteko iz mape Prenosi
  4. Odprite datoteko SendMultipleSms.sln v Visual Studiu
  5. Zaženite aplikacijo Ozeki SMS Gateway
  6. Kliknite na HTTP uporabnika v zavihku Uporabniki in aplikacije
  7. Zaženite Program.fs v Visual Studiu
  8. Preverite polje Poslano v Ozeki SMS Gateway
Namestite Ozeki SMS Gateway in ustvarite HTTP API uporabnika

Za pošiljanje 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 testno SMS iz Ozeki GUI, da preverite, ali vaša mobilna omrežna povezava deluje. Zadnji korak pri pripravi vašega okolja je ustvarjanje uporabnika za HTTP SMS API. Ustvarite uporabnika z uporabniškim imenom "http_user" in geslom "qwe123", da bo primer deloval brez sprememb.

Ko je okolje pripravljeno, lahko zaženete svojo F# kodo.

HTTP API url za pošiljanje SMS iz F#

Za pošiljanje SMS iz F# bo vaša C# koda morala izdati HTTP zahtevo proti SMS prehodu. 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

HTTP avtentikacija za pošiljanje SMS iz F#

Za avtentikacijo F# SMS odjemalca morate uporabniško ime in geslo poslati 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 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 tip vsebine in glavo za avtorizacijo.

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 z glavo HTTP in del s telesom HTTP. Telo HTTP je niz podatkov, kodiran v JSON. Vsebuje prejemnikovo številko in besedilo sporočila.

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 odziv, prejet s strani F# SMS primera

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.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": "Sporočila so v čakalni vrsti za dostavo.",
  "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 primer: SendMultipleSms.sln

Kako prenesti in odpreti projekt (Video vadnica)

V tem videu se boste naučili, kako prenesti primer projekta v F#. Video se začne s strani za prenos in konča z odprtim projektom. Naučili se boste, kako prenesti projekt in kaj storiti po tem. Video je dolg le 1 minuto in zelo podroben. Ne boste imeli težav z upoštevanjem korakov. Povezavo za prenos boste našli na strani z vadnico.

Video 1 - Kako prenesti in odpreti zgornjo rešitev (Video vadnica)

Primer kode spodaj je del Visual Studio rešitve SendMultipleSms.sln. Visual studio rešitev lahko vsebuje več projektov in več datotek. V tej rešitvi je samo en projekt: SendMultipleSms.fsproj, in ena datoteka: Program.fs.

Slika 3 - SendMultipleSms.sln

Kako uporabiti projekt (Video vadnica)

V tem videu se boste naučili, kako uporabiti projekt za pošiljanje več SMS-ov hkrati s pomočjo F#. Video se bo začel z odpiranjem Ozeki SMS Gateway in vas popelje vse do mape s poslanimi sporočili. Naučili se boste, kako zagnati kodo in kako preveriti mapo s poslanimi sporočili. Video je vreden ogleda, ker je enostaven za sledenje in podroben, vendar dolg le 1 minuto.

Video 2 - Kako uporabiti rešitev SendMultipleSms.fs (Video vadnica)

Zagon primera SMS v F# 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 v Linuxu. Da bi razumeli, zakaj se to zgodi, morate upoštevati, da F# uporablja ogrodje .NET za izvajanje kode. To je zato, ker je implementacija .NET v sistemu Windows optimizirana za zmogljivost, medtem ko ima mono, implementacija .NET v Linuxu, na tem področju še nekaj za dohiteti.

Povzetek

Kot je bilo razvidno iz zgornjega članka, je pošiljanje več SMS-ov v F# z uporabo Ozeki SMS Gateway zelo preprosto. Ta rešitev vam omogoča, da dosežete več strank z eno samo kodo, kar prihrani stroške in čas. Pomembno je omeniti, da Ozeki SMS Gateway deluje v okolju, ki ga nadzirate, zato so vaši podatki in seznam strank v varnih rokah. Če so bili koraki skrbno upoštevani, lahko sporočanje s strankami poteka brez zapletov.

Nadaljujte svoje učenje na Ozekijevi strani z vadnicami, kjer je več o temah, kot so načrtovanje SMS in prejemanje v F#.

Naslednja stvar, ki jo morate storiti, je prenesti Ozeki SMS Gateway in začeti delati!

More information