Jak odbierać SMS w Node.js

Najprostszym sposobem wysyłania SMS z Node.Js 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 odbierać wiadomości SMS za pomocą node js
Rysunek 1 - Jak odbierać SMS z Node.Js

Kod JavaScript do odbierania wiadomości SMS

Poniższy przykładowy kod JavaScript do obsługi SMS demonstruje, jak możesz odbierać SMS za pomocą interfejsu HTTP REST SMS API Ozeki SMS Gateway, używając biblioteki JavaScript Ozeki.Libs.Rest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym z twoich projektów.

ReceiveSms.mjs
import { Configuration, MessageApi } from './Ozeki.Libs.Rest.js';


var configuration = new  Configuration();
configuration.Username = "http_user";
configuration.Password = "qwe123";
configuration.ApiUrl = "http://127.0.0.1:9509/api";

var api = new MessageApi(configuration);

const result = await api.DownloadIncoming();

console.log(result.toString());

for (let i = 0; i < result.MessageCount; i++) {
    console.log(result.Messages[i].toString());
}
	

Jak używać przykładu kodu JavaScript do obsługi SMS:

Możesz użyć klasy Message do tworzenia SMS i możesz użyć klasy MessageApi, aby wysłać SMS do bramki SMS. Bramka SMS przekaże twoją wiadomość do sieci komórkowej albo przez połączenie bezprzewodowe, albo przez Internet.

Pobierz ReceiveSms.js

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

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

Plik ReceiveSms.js.zip zawiera bibliotekę Ozeki.Libs.Rest, która dostarcza wszystkie narzędzia niezbędne do wysyłania, oznaczania, usuwania i odbierania wiadomości SMS. Znajdziesz tam również plik ReceiveSms.mjs w projekcie, który zawiera przykładowy kod pokazujący, jak odbierać wiadomości SMS. Ten przykładowy kod jest wymieniony poniżej.

przykładowy projekt do odbierania sms za pomocą node js
Rysunek 2 - Katalog ReceiveSms.js

Ten projekt ma zależności, więc przed rozpoczęciem musisz zainstalować pakiet node-fetch za pomocą następującej komendy:

npm install node-fetch
	

Kod 1 - Komenda do zainstalowania pakietu node-fetch

.

Jak odbierać wiadomości SMS z Node.Js (Szybkie kroki)

Aby odbierać wiadomości SMS z Node.Js:

  1. Zainstaluj Ozeki SMS Gateway
  2. Podłącz Ozeki SMS Gateway do sieci komórkowej
  3. Wyślij testową wiadomość SMS z interfejsu Ozeki
  4. Utwórz użytkownika HTTP SMS API
  5. Apache NetBeans
  6. Pobierz przykładowy projekt powyżej
  7. Utwórz SMS, tworząc nowy obiekt Message
  8. Utwórz API do wysłania wiadomości
  9. Użyj metody DownloadIncoming() do odbioru wiadomości
  10. Odczytaj odpowiedź na konsoli i wyświetl wiadomości na konsoli
  11. Sprawdź logi w bramce SMS

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

Aby móc wysyłać SMS z Node.Js, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod JavaScript w Visual Studio Code lub innym edytorze kodu. Po instalacji następnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testową wiadomość SMS 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 JavaScript.

URL API HTTP do odbierania SMS z Node.Js

Aby odebrać SMS z Node.Js, twój JavaScript będzie musiał 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 zainstalowana na tym samym komputerze, na którym działa aplikacja JavaScript do obsługi SMS, może to być 127.0.0.1. Jeśli jest zainstalowana 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 JavaScript

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

var usernamePassword = username + ":" + password;
return `Basic ${Base64.encode(usernamePassword)}`;
	

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 z JavaScript

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 wysyłania SMS z Node.Js

Aby przesłać SMS, Twoja aplikacja Node.Js 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 i tekst wiadomości.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Connection: close
Accept: */*
Accept-Encoding: gzip,deflate
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: node-fetch/1.0 (+https://github.com/bitinn/node-fetch)
	

Odpowiedź HTTP otrzymana przez przykład SMS w JavaScript

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 JSON, aby dostarczyć przydatne informacje dotyczące przesłania wiadomości.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.120 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Mon, 14 Jun 2021 09:12:00 GMT
Server: 10/10.3.120
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "",
	"data": {
	  "folder": "inbox",
	  "limit": "1000",
	  "data": [
	    {
	      "message_id": "02ccc4d5-4aeb-7f64-b980-9aa262ef86fb",
	      "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-06-14 12:00:14",
	      "valid_until": "2021-06-21 12:00:14",
	      "time_to_send": "2021-06-14 12:00:14",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "bb663f6c-fcf2-df32-bd33-1778e8578f23",
	      "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-14 12:00:14",
	      "valid_until": "2021-06-21 12:00:14",
	      "time_to_send": "2021-06-14 12:00:14",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "ca555a52-2f5a-285a-b6e2-6aa1fa3353f8",
	      "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-14 12:00:14",
	      "valid_until": "2021-06-21 12:00:14",
	      "time_to_send": "2021-06-14 12:00:14",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}
	

Jak odbierać SMS z Node.Js za pomocą API SMS (Samouczek wideo)

Ten film pokazuje, jak pobrać i użyć projektu ReceiveSms.js. Po dodaniu potrzebnych plików do projektu możesz zauważyć, że istnieje plik o nazwie Ozeki.Lbis.Rest.js. To plik zawierający MessageApi i wszystko, czego potrzebujesz, aby wysłać SMS za pomocą JavaScript.

Wideo 1 - Jak pobrać Ozeki.Libs.Rest i skonfigurować swój projekt (Samouczek wideo)

Przykład SMS w Node.Js: ReceiveSms.mjs (w Notatniku)

Na poniższym obrazku widać kod źródłowy ReceiveSMS.mjs otwarty (Rysunek 3). W tym przypadku użyto Notatnika do otwarcia kodu źródłowego, który można również edytować. Jak widać, kod zawiera predefiniowane zmienne nazwy użytkownika i hasła. Jeśli znasz język programowania Node.js, możesz zmienić wartości zmiennych, aby pasowały do Twoich danych logowania użytkownika HTTP.

przykład JavaScript do odbierania wiadomości SMS
Rysunek 3 - ReceiveSms.mjs w Notatniku

Przykład SMS w Node.Js: ReceiveSms.mjs (w Visual Studio Code)

Jeśli chcesz użyć IDE z wbudowanym kolorowaniem składni, pomocną dokumentacją i rozszerzeniami, użyj Visual Studio Code. Jest to lekki i darmowy środowisko programistyczne, które możesz wykorzystać do edycji kodu w wielu różnych językach. Jak widać, zakodowaliśmy przykładową nazwę użytkownika i hasło w kodzie źródłowym. Jeśli znasz język programowania Node.js, możesz je edytować, aby pasowały do Twojego użytkownika HTTP.

przykład JavaScript do odbierania wiadomości SMS
Rysunek 4 - ReceiveSms.mjs w Visual Studio Code

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

Po wysłaniu żądania warto sprawdzić bramkę SMS, aby zobaczyć, co otrzymała. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP z konsoli zarządzania Ozeki SMS Gateway. Poniższy film pokazuje, na co zwrócić uwagę.

Wideo 2 - Jak odbierać wiadomości SMS za pomocą kodu JavaScript powyżej (Samouczek wideo)

Podsumowanie

Przewodnik wyjaśnił, jak skonfigurować to API SMS do odbierania SMS-ów za pomocą programu Node.js przy użyciu użytkownika HTTP Ozeki SMS Gateway. To rozwiązanie pomaga organizować przychodzące wiadomości, przenosząc je z folderu Odebrane do aplikacji Node.js. Zastosowanie tego programu daje możliwość utrzymania systemu wiadomości w porządku i przepływu ważnych informacji do Ciebie.

Założę się, że chcesz dowiedzieć się więcej o efektywnym zarządzaniu wiadomościami, znajdziesz to, czego potrzebujesz, na stronie Ozeki. Bardzo pomaga, jeśli posegregujesz wiadomości i zachowasz tylko to, czego potrzebujesz, więc przeczytaj następny artykuł o Jak usunąć SMS w Node.js.

Skonfiguruj Ozeki SMS Gateway już teraz i wykorzystaj to, co masz!

More information