Ako poslať SMS z Scala

Najjednoduchší spôsob, ako poslať SMS z Scala, je použiť vstavané HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete posielať SMS správy vydaním HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu formátovanú v json formáte. SMS brána pošle túto SMS na telefón príjemcu a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako poslať sms z scala
Obrázok 1 - Ako poslať SMS z Scala

Scala kód na odoslanie sms na mobil

Ukážka Scala sms kódu nižšie demonštruje, ako môžete poslať SMS pomocou http rest sms api Ozeki SMS Gateway s knižnicou Scala Ozeki.Libs.Rest. Táto knižnica je poskytovaná bezplatne a môžete ju použiť a upraviť v akomkoľvek z vašich projektov.

SendSms.scala
import Ozeki.Libs.Rest.{ Configuration, Message, MessageApi }


object main  {
  def main(args: Array[String]): Unit = {
      
    val configuration = Configuration(
      Username = "http_user",
      Password = "qwe123",
      ApiUrl = "http://127.0.0.1:9509/api"
    )

    val msg = Message(
        ToAddress = "+36201111111",
        Text = "Hello world!"
    )

    val api = MessageApi(configuration)

    val result = api.Send(msg)

    println(result)
  }
}
	

Kód 1 - SendSms.scala

Ako použiť Scala sms príklad:

Tento Scala sms príklad môže byť použitý v akejkoľvek Scala aplikácii. Na použitie je potrebné stiahnuť knižnicu Ozeki.Libs.Rest. Po stiahnutí knižnice je potrebné pridať odkaz na ňu vo vašom Scala zdrojovom kóde. To vám umožní používať triedy poskytované knižnicou Ozeki.Libs.Rest. Môžete použiť triedu Message na vytvorenie SMS. Môžete použiť triedu MessageApi na odoslanie SMS na SMS bránu. SMS brána prepošle vašu správu do mobilnej siete buď cez bezdrôtové pripojenie alebo cez internet.

Stiahnuť SendSms.scala

Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý a používaný a upravovaný bezplatne.
Stiahnuť: SendSms.scala.zip (96.4Kb)

Čo je v súbore SendSms.scala.zip?

V SendSms.scala.zip nájdete InteliJ projekt so zdrojovým priečinkom a v zdrojovom (src) priečinku nájdete knižnicu Ozeki.Libs.Rest a súbor main.scala, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako poslať SMS. Tento ukážkový kód je uvedený nižšie.

Obrázok 2 - Čo je vo vnútri SendSms.scala.zip

Ako poslať SMS z Scala (Jednoduché pokyny)

Na odoslanie SMS z Scala:

  1. Nainštalujte HTTP API používateľa
  2. Povoľte Log komunikácie na karte Pokročilé
  3. Nastavte Visual Studio
  4. Stiahnite a rozbaľte súbor SendSms.scala.zip
  5. Otvorte projekt SendSms.scala v InteliJ IDE
  6. Spustite aplikáciu Ozeki SMS Gateway
  7. Spustite SendSend.scala Scala kód jeho vykonaním v IntelliJ IDE
  8. Skontrolujte logy, či bola SMS odoslaná
Nainštalujte Ozeki SMS Gateway a vytvorte HTTP API používateľa

Na to, aby ste mohli posielať SMS z Scala, musíte najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnakom počítači, kde vyvíjate svoj Scala kód v akomkoľvek textovom editore, ako je napríklad windows notepad. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu sms z Ozeki GUI na overenie, že vaše mobilné pripojenie funguje. Posledným krokom na prípravu vášho prostredia je vytvorenie HTTP sms api používateľského účtu. Vytvorte používateľa s menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.

Po nastavení prostredia môžete spustiť svoj Scala kód.

HTTP API url na odoslanie SMS z Scala

Na odoslanie SMS z Scala bude vaše Scala musieť vydať HTTP požiadavku na SMS bránu. API url je uvedené nižšie. Upozorňujeme, že IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaný na rovnakom počítači, kde beží Scala sms aplikácia, môže to byť 127.0.0.1. Ak je nainštalovaný na inom počítači, mala by to byť IP adresa toho počítača.

http://127.0.0.1:9509/api?action=rest
	
HTTP autentifikácia na odoslanie SMS z Scala

Na autentifikáciu Scala sms klienta musíte poslať používateľské meno a heslo v base64 kódovanom reťazci na server v HTTP požiadavke. Použitý formát je: base64(username+":"+password). V Scala môžete použiť nasledujúci kód na toto kódovanie:

val usernamePassword = "%s:%s".format(Username, Password).getBytes()
val usernamePasswordEncoded = Base64.getEncoder.encodeToString(usernamePassword)
"Basic %s".format(usernamePasswordEncoded)
	

Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete nasledujúci base64 kódovaný reťazec: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie

HTTP hlavička požiadavky na odoslanie SMS z Scala

Na odoslanie SMS správ musíte zahrnúť nasledujúce riadky ako hlavičky do HTTP požiadavky. Upozorňujeme, že zaraďujeme content type a Authorization hlavičku.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

HTTP požiadavka na odoslanie SMS z jazyka Scala

Na odoslanie SMS bude vaša Scala aplikácia posielať HTTP požiadavku podobnú ako je uvedená nižšie. Upozorňujeme, že táto požiadavka obsahuje časť HTTP hlavičky a časť HTTP tela. Telo HTTP je reťazec dát zakódovaný v JSON. Obsahuje číslo príjemcu a text správy.

POST /api?action=sendmsg HTTP/1.1
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
Content-Length: 327
Content-Type: application/json
Accept: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Java-http-client/16.0.1

{
	"messages": [
		{
			"message_id":"2f8aa62a-bdad-436b-a824-2aba0a79c39f",
			"to_address":"+36201111111",
			"text":"Hello world!",
			"create_date":"2021-07-15T08:59:28",
			"valid_until":"2021-07-22T08:59:28",
			"time_to_send":"+1000000000-01-01T00:00:00",
			"submit_report_requested":true,
			"view_report_requested":true,
			"delivery_report_requested":true
		}
	]
}
	
HTTP odpoveď prijatá príkladom SMS v jazyku Scala

Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Taktiež vráti štruktúru zakódovanú v JSON, ktorá poskytne užitočné informácie o odoslaní správy.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.123 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Thu, 15 Jul 2021 08:08:03 GMT
Server: 10/10.3.123
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": "2f8aa62a-bdad-436b-a824-2aba0a79c39f",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world!",
	      "create_date": "2021-07-15 08:59:28",
	      "valid_until": "2021-07-22 08:59:28",
	      "time_to_send": "2021-07-15 08:59:28",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	
Pripojte svoju SMS bránu k mobilnej sieti a vytvorte používateľský účet HTTP API

Predpokladáme, že ste už nainštalovali Ozeki SMS Gateway, a že ste pripojili ju k mobilnej sieti. Aby ste mohli odosielať SMS na mobilný telefón z jazyka Scala, musíte nastaviť používateľský účet HTTP API v Ozeki SMS Gateway.

Video 1 - Ako nastaviť používateľský účet HTTP API (Video návod)

Ako odoslať SMS z jazyka Scala pomocou Scala SMS API (Video návod)

Toto video vám ukáže, ako si stiahnuť súbor SendSms.scala.zip z tejto stránky. Ak si video pozriete, všimnete si, že obsah SendSms.scala zipu je umiestnený na pracovnej ploche Windows. Taktiež uvidíte, že spúšťame príkazový riadok na odoslanie SMS.

Príklad SMS v jazyku Scala: SendSms.scala

Príklad kódu nižšie je súčasťou súboru SendSms.scala.

príklad kódu na odoslanie sms pomocou jazyka scala
Obrázok 3 - Súbor SendSms.scala

Ako skontrolovať, že SMS bola prijatá HTTP používateľom

Po odoslaní SMS je dobré skontrolovať vašu SMS bránu, aby ste videli, čo prijala. Log môžete skontrolovať otvorením detailov HTTP používateľa v konzole na správu Ozeki SMS Gateway. Nasledujúce video vám ukáže, čo hľadať.

Video 3 - Ako skontrolovať, že SMS bola prijatá HTTP používateľom (Video návod)

Ako skontrolovať, že SMS bola odoslaná do mobilnej siete

Posledným krokom pri overovaní postupu je pozrieť sa na logy pripojenia k mobilnej sieti. Možno budete musieť zapnúť logovanie v konfigurácii pripojenia pred odoslaním správy, aby ste videli logy. Ak je logovanie zapnuté, uvidíte telefónne číslo a text správy, ktorú ste odoslali.

Video 4 - Ako skontrolovať, že SMS bola odoslaná do mobilnej siete (Video návod)

Prijatie SMS správy na telefóne s Androidom

V tomto videu uvidíte, ako vyzerá prijatie SMS na telefóne s Androidom. Video začína obyčajnou domovskou obrazovkou Androidu, a uvidíte, ako sa objaví notifikácia SMS a ako môžete otvoriť celú správu. Video je dlhé len 18 sekúnd a stojí za pozretie, pretože uvidíte celý proces prijatia SMS.

Video 5 - Ako vyzerá prijatie SMS správy na mobile (Návodové video)

Zhrnutie

Tento článok mal za cieľ ukázať kroky odosielania SMS v Scale pomocou Ozeki SMS Gateway. Ak boli kroky dôsledne dodržané, odosielanie správ pomocou Scala kódov a Ozeki SMS Gateway by nemal byť problém. Ozeki SMS Gateway umožňuje zaznamenávať SMS správy do databázy a ponúka niekoľko reportovacích funkcií, ktoré vám poskytnú viac informácií o SMS komunikácii.

Pokračujte v čítaní na návodovej stránke Ozeki, kde nájdete ďalšie zaujímavé články o témach ako plánovanie SMS v Scale.

Jediné, čo teraz musíte urobiť, je stiahnuť si Ozeki SMS Gateway a začať pracovať!

More information