Jak zaplanować wysłanie SMS w Scala

Najprostszym sposobem na wysłanie zaplanowanego SMS z Scala jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Kiedy używasz tego API, będziesz wysyłać wiadomości SMS poprzez wysłanie żądania HTTP Post do bramki SMS. Żądanie HTTP Post będzie zawierać wiadomość sformatowaną w formacie json. Bramka SMS wyśle tę wiadomość SMS na telefon odbiorcy i zwróci odpowiedź HTTP 200 OK na twoje żądanie.

jak zaplanować wysłanie sms w scala
Rysunek 1 - Jak zaplanować wysłanie SMS w Scala

Kod Scala do wysłania zaplanowanego SMS na telefon

Poniższy przykładowy kod SMS w Scala demonstruje, jak możesz wysłać zaplanowanego SMSa przy użyciu http rest sms api Ozeki SMS Gateway z wykorzystaniem biblioteki Scala Ozeki.Libs.Rest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym z twoich projektów.

SendScheduledSms.scala
import Ozeki.Libs.Rest.{Configuration, Message, MessageApi}
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter


object main  {
  def main(args: Array[String]): Unit = {

    val DateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")

    val configuration = Configuration(
      Username = "http_user",
      Password = "qwe123",
      ApiUrl = "http://127.0.0.1:9509/api"
    )

    val msg = Message(
      ToAddress = "+36201111111",
      Text = "Hello world!",
      TimeToSend = LocalDateTime.parse("2021-07-14 16:30:00", DateFormat)

    )

    val api = MessageApi(configuration)

    val result = api.Send(msg)

    println(result)
  }
}
	

Kod 1 - SendScheduledSms.scala

Jak użyć przykładu SMS w Scala:

Ten przykład SMS w Scala może być użyty w dowolnej aplikacji Scala. Aby go użyć, musisz pobrać bibliotekę Ozeki.Libs.Rest. Po pobraniu biblioteki trzeba dodać do niej referencję w swoim kodzie źródłowym Scala. To pozwoli ci używać klas dostarczonych przez bibliotekę Ozeki.Libs.Rest. Możesz użyć klasy Message do stworzenia SMS. Możesz użyć klasy MessageApi do wysłania SMS do bramki SMS. Bramka SMS przekaże twoją wiadomość do sieci komórkowej albo przez połączenie bezprzewodowe albo przez Internet.

Pobierz SendScheduledSms.scala

Kod źródłowy wyjaśniony w tym artykule może być pobrany, użyty i zmodyfikowany bezpłatnie.
Pobierz: SendScheduledSms.scala.zip (91.4Kb)

Co znajduje się w pliku SendScheduledSms.scala.zip?

W SendScheduledSms.scala.zip znajdziesz plik SendScheduledSms.scala, który zawiera przykładowy kod pokazujący, jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.

Rysunek 2 - Co znajduje się w SendScheduledSms.scala.zip

Jak wysłać SMS z Scala (Proste wskazówki)

Aby wysłać SMS z Scala:

  1. Zainstaluj użytkownika HTTP API
  2. Włącz Logowanie zdarzeń komunikacyjnych w zakładce Zaawansowane
  3. Skonfiguruj Visual Studio
  4. Pobierz, a następnie rozpakuj plik SendScheduledSms.scala.zip
  5. Otwórz projekt SendScheduledSms.scala w środowisku InteliJ IDE
  6. Uruchom aplikację Ozeki SMS Gateway
  7. Wykonaj kod Scala SendScheduledSms.scala, uruchamiając go w IntelliJ IDE
  8. Sprawdź logi, aby zobaczyć, czy SMS został wysłany

Zainstaluj Ozeki SMS Gateway i stwórz użytkownika HTTP API

Aby móc wysyłać SMS z Scala, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod Scala w dowolnym edytorze tekstu, takim jak windows notepad. Po instalacji następnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testowego SMSa z interfejsu Ozeki, aby zweryfikować, czy twoje połączenie z siecią komórkową działa. Ostatnim krokiem przygotowania środowiska jest stworzenie użytkownika HTTP sms api. Stwórz użytkownika z nazwą "http_user" i hasłem "qwe123", aby przykład działał bez modyfikacji.

Po skonfigurowaniu środowiska możesz uruchomić swój kod Scala.

URL API HTTP do wysyłania SMS z Scala

Aby wysłać SMS z Scala, twoja aplikacja Scala będzie musiała wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Zauważ, że adres IP (127.0.0.1) powinien zostać zastąpiony adresem IP twojej bramki SMS. Jeśli Ozeki SMS Gateway jest zainstalowany na tym samym komputerze, na którym działa aplikacja R sms, może to być 127.0.0.1. Jeśli jest zainstalowany na innym komputerze, powinien to być adres IP tego komputera.

http://127.0.0.1:9509/api?action=rest
	

Uwierzytelnianie HTTP do wysyłania SMS z Scala

Aby uwierzytelnić klienta SMS w Scala, musisz wysłać nazwę użytkownika i hasło w zakodowanym ciągu base64 do serwera w żądaniu HTTP. Używany format to: base64(nazwa_użytkownika+":"+hasło). W Scala możesz użyć następującego kodu, aby wykonać to kodowanie:

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

Na przykład, jeśli zakodujesz nazwę użytkownika 'http_user' i hasło 'qwe123', otrzymasz następujący zakodowany ciąg base64: aHR0cF91c2VyOnF3ZTEyMw==. Aby wysłać

Nagłówek żądania HTTP do wysyłania SMS-ów z Scali

Aby wysłać wiadomości SMS, należy dołączyć następujące linie jako nagłówki w żądaniu HTTP. Należy zauważyć, że zawieramy typ zawartości i nagłówek autoryzacji.

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

Żądanie HTTP do wysłania zaplanowanego SMS-a z Scali

Aby przesłać SMS, Twoja aplikacja Scala wyśle żądanie HTTP podobne do poniższego. Należy zauważyć, że to żądanie zawiera część nagłówka HTTP i część ciała HTTP. Ciało HTTP to ciąg danych zakodowany w formacie JSON. Zawiera numer odbiorcy, treść wiadomości, a także czas, w którym chcemy wysłać SMS.

POST /api?action=sendmsg HTTP/1.1
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
Content-Length: 320
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":"e2f650ee-90cc-43c5-885b-5ea4a0458381",
			"to_address":"+36201111111",
			"text":"Hello world!",
			"create_date":"2021-07-15T10:32:42",
			"valid_until":"2021-07-22T10:32:42",
			"time_to_send":"2021-07-15T11:00:00",
			"submit_report_requested": true,
			"view_report_requested": true,
			"delivery_report_requested": true
		}
	]
}
	

Odpowiedź HTTP otrzymana przez przykład SMS w Scali

Gdy brama SMS otrzyma to żądanie, wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, aby wskazać, czy żądanie wysłania SMS zakończyło się sukcesem, czy nie. Zwróci również strukturę zakodowaną w formacie JSON, aby dostarczyć przydatne informacje o przesłaniu wiadomości.

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 10:26:26 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": "e2f650ee-90cc-43c5-885b-5ea4a0458381",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world!",
	      "create_date": "2021-07-15 10:32:42",
	      "valid_until": "2021-07-22 10:32:42",
	      "time_to_send": "2021-07-15 11:00:00",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

Jak wysłać SMS z Scali przy użyciu interfejsu API SMS w Scali (Samouczek wideo)

Ten film pokazuje, jak pobrać plik SendScheduledSms.scala.zip z tej strony. Jeśli obejrzysz film, zauważysz, że zawartość pliku SendScheduledSms.scala.zip jest umieszczana na pulpicie systemu Windows. Zobaczysz również, że uruchamiamy wiersz poleceń, aby wysłać SMS.

Wideo 1 - Jak wysłać SMS z Scali przy użyciu interfejsu API SMS w Scali (Samouczek wideo)

Przykład SMS w Scali: SendScheduledSms.scala

Poniższy przykładowy kod jest częścią pliku SendScheduledSms.scala.

przykładowy kod do wysłania zaplanowanego sms przy użyciu scali
Rysunek 3 - Plik SendScheduledSms.scala

Jak sprawdzić, czy SMS został zaakceptowany przez użytkownika HTTP

Po przesłaniu SMS-a warto sprawdzić w bramie SMS, co otrzymała. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP w konsoli zarządzania bramą SMS Ozeki. Poniższy film pokazuje, na co zwrócić uwagę.

Wideo 2 - Jak sprawdzić, czy SMS został zaakceptowany przez użytkownika HTTP (Samouczek wideo)

Podsumowanie

Główną funkcją tego artykułu było wyjaśnienie kroków planowania SMS-ów w Scali z pomocą bramy SMS Ozeki. Jeśli wszystko zostało uważnie przeczytane, planowanie SMS-ów powinno być bardzo proste. Idealny czas na udostępnianie informacji jest ważny, jeśli chcesz pracować z wysoką wydajnością, ponieważ w ten sposób możesz uniknąć godzin szczytu klientów, dzięki czemu nie zignorują Twoich wiadomości. Brama SMS Ozeki pozwala zarządzać kosztami SMS-ów i śledzić ruch SMS-ów.

Upewnij się, że kontynuujesz czytanie na stronie samouczka Ozeki, gdzie można znaleźć więcej informacji na temat tematów takich jak usuwanie SMS-ów w Scali.

Teraz jedyne, co pozostaje, to pobrać bramę SMS Ozeki i zacząć pracę!

More information