Jak odbierać SMS-y w Scali

Najprostszym sposobem na odbieranie SMS-ów w Scali jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Korzystając z tego API, będziesz otrzymywać wiadomości SMS poprzez wysłanie żądania HTTP Get do bramki SMS. Żądanie HTTP Get będzie zawierać nazwę folderu, z którego chcesz odbierać wiadomości. Bramka SMS wyśle wszystkie wiadomości z tego folderu do Twojej aplikacji klienckiej w Scali i zwróci odpowiedź HTTP 200 OK na Twoje żądanie.

jak odbierać sms w scali
Rysunek 1 - Jak odbierać SMS-y w Scali

Kod w Scali do odbierania wiadomości SMS na telefon

Poniższy przykładowy kod SMS w Scali demonstruje, jak można wysłać zaplanowanego SMS-a przy użyciu interfejsu HTTP REST SMS API Ozeki SMS Gateway z wykorzystaniem biblioteki Ozeki.Libs.Rest w Scali. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnych swoich projektach.

ReceiveSms.scala
import Ozeki.Libs.Rest.{ Configuration, 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 api : MessageApi = MessageApi(configuration)

    val result = api.DownloadIncoming()

    println(result)

    for (message <- result.Messages) {
      println(message)
    }
  }
}
	

Kod 1 - ReceiveSms.scala

Jak używać przykładu SMS w Scali:

Ten przykład SMS w Scali może być używany w dowolnej aplikacji Scala. Aby go użyć, musisz pobrać bibliotekę Ozeki.Libs.Rest. Po pobraniu biblioteki należy dodać do niej referencję w swoim kodzie źródłowym Scala. Pozwoli to na korzystanie z klas dostarczonych przez bibliotekę Ozeki.Libs.Rest. Możesz użyć klasy Message do tworzenia SMS-ów. Możesz użyć klasy MessageApi do odbioru SMS-ów z bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej poprzez połączenie bezprzewodowe lub przez Internet.

Pobierz ReceiveSms.scala

Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: ReceiveSms.scala.zip (90.6Kb)

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

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

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

Jak odbierać SMS-y w Scali (proste wskazówki)

Aby odbierać SMS-y w Scali:

  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 ReceiveSms.scala.zip
  5. Otwórz projekt ReceiveSms.scala w środowisku InteliJ IDE
  6. Uruchom aplikację Ozeki SMS Gateway
  7. Uruchom kod ReceiveSms.scala w Scali, wykonując go w IntelliJ IDE
  8. Sprawdź logi, aby zobaczyć, czy SMS został wysłany

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

Aby móc odbierać SMS-y w Scali, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod w Scali w dowolnym edytorze tekstu, takim jak Windows Notepad. Po instalacji kolejnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testowego SMS-a z interfejsu Ozeki, aby sprawdzić, czy Twoje połączenie z siecią komórkową działa. Ostatnim krokiem przygotowania środowiska jest utworzenie użytkownika HTTP SMS API. Utwó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 w Scali.

URL API HTTP do odbierania SMS-ów w Scali

Aby wysyłać SMS-y w Scali, Twoja aplikacja w Scali 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 SMS w Scali, 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 odbierania SMS-ów w Scali

Aby uwierzytelnić klienta SMS w Scali, 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 Scali możesz użyć następującego kodu do wykonania tego kodowania:

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 odbierania SMS-ów w Scali

Aby odbierać wiadomości SMS, musisz uwzględnić następujące linie jako nagłówki w żądaniu HTTP. Zauważ, że zawieramy nagłówek Content-Type i Authorization.

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

Żądanie HTTP do odbierania SMS-ów z Scali

Aby przesłać SMS, Twoja aplikacja Scala wyśle żądanie HTTP podobne do poniższego. Zauważ, ż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 numery odbiorców i teksty wiadomości, które wysłaliśmy.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
Content-Length: 0
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Java-http-client/16.0.1
	

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, wskazujący, czy żądanie przesłania SMS zakończyło się sukcesem, czy nie. Zwróci również strukturę zakodowaną w formacie JSON, aby dostarczyć przydatne informacje na temat przesłania 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 11:23:02 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "",
	"data": {
	  "folder": "inbox",
	  "limit": "1000",
	  "data": [
	    {
	      "message_id": "bf1960cf-1474-40ac-85aa-5487a6edeb7f",
	      "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-07-13 11:51:57",
	      "valid_until": "2021-07-20 11:51:57",
	      "time_to_send": "2021-07-13 11:51:57",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "df87cdf8-6e8b-4c99-a648-d2f24231bf04",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36201111111",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-07-13 11:51:57",
	      "valid_until": "2021-07-20 11:51:57",
	      "time_to_send": "2021-07-13 11:51:57",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "7308e035-f92d-4515-9d21-9bb80ef26e74",
	      "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-07-13 11:51:57",
	      "valid_until": "2021-07-20 11:51:57",
	      "time_to_send": "2021-07-13 11:51:57",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}
	

Jak odbierać SMS-y z Scali przy użyciu API SMS w Scali (Samouczek wideo)

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

Wideo 1 - Jak odbierać SMS-y z Scali przy użyciu API SMS w Scali (Samouczek wideo)

Przykład SMS w Scali: ReceiveSms.scala

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

przykładowy kod do odbierania SMS-ów przy użyciu Scali
Rysunek 3 - Plik ReceiveSms.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 Ozeki SMS Gateway. Poniższy film pokazuje, na co zwrócić uwagę.

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

Podsumowanie

Ten przewodnik pokazał podstawowe kroki odbierania SMS-ów w Scali z pomocą Ozeki SMS Gateway. Jeśli każdy krok został wykonany starannie, przekazywanie przychodzących wiadomości do programu w Scali powinno być bardzo proste. Dzięki temu rozwiązaniu możesz mieć pewność, że wiadomości są zbierane w odpowiednim miejscu. Ważne jest, aby pamiętać, że Ozeki SMS Gateway działa w środowisku, które kontrolujesz, więc Twoja lista kontaktów i dane są w bezpiecznych rękach.

Kontynuuj czytanie na stronie samouczków Ozeki, gdzie znajdziesz więcej informacji na tematy takie jak planowanie SMS-ów w Scali.

Jedyne, co teraz pozostaje, to pobrać Ozeki SMS Gateway i zacząć pracę!

More information