Jak zaplanować wysłanie SMS w Node.js
Najprostszym sposobem wysyłania SMS z Node.js jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Korzystając z tego API, wysyłasz wiadomości SMS poprzez wysłanie żądania HTTP Post do bramki SMS. Żądanie HTTP Post będzie zawierać wiadomość w formacie JSON. Bramka SMS wyśle tę wiadomość na telefon odbiorcy i zwróci odpowiedź HTTP 200 OK na Twoje żądanie.
Kod JavaScript do wysyłania SMS na telefon
Poniższy przykładowy kod JavaScript do wysyłania SMS demonstruje, jak możesz wysyłać SMS za pomocą interfejsu HTTP REST SMS API Ozeki SMS Gateway, korzystając z 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.
SendScheduledSms.mjsimport { Configuration, Message, 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 msg = new Message(); msg.ToAddress = "+36201111111"; msg.Text = "Hello world!"; msg.TimeToSend = new Date(Date.UTC(2021, 5, 21, 14, 55, 0)); var api = new MessageApi(configuration); const result = await api.Send(msg); console.log(result.toString());
Jak używać przykładu kodu JavaScript do wysyłania SMS:
Możesz użyć klasy Message do tworzenia SMS, a klasy MessageApi do wysłania SMS do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej poprzez połączenie bezprzewodowe lub przez Internet.
Pobierz SendScheduledSms.js
Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: SendScheduledSms.js.zip (4.46Kb)
Co znajduje się w pliku SendScheduledSms.js.zip?
Plik SendScheduledSms.js.zip zawiera bibliotekę Ozeki.Libs.Rest, która zapewnia wszystkie narzędzia niezbędne do wysyłania i odbierania wiadomości SMS. Znajdziesz tam również plik SendScheduledSms.mjs w projekcie, który zawiera przykładowy kod pokazujący, jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.
Ten projekt ma zależności, więc przed rozpoczęciem należy zainstalować pakiet node-fetch za pomocą następującej komendy:
npm install node-fetch
Jak wysłać zaplanowaną wiadomość SMS z Node.js (Szybkie kroki)
Aby wysłać zaplanowaną wiadomość SMS z Node.js:
- Zainstaluj Ozeki SMS Gateway
- Podłącz Ozeki SMS Gateway do sieci komórkowej
- Wyślij testową wiadomość SMS z interfejsu Ozeki
- Utwórz użytkownika HTTP SMS API
- Apache NetBeans
- Pobierz przykładowy projekt powyżej
- Utwórz wiadomość SMS, tworząc nowy obiekt Message
- Utwórz API do wysłania wiadomości
- Użyj metody Send, aby wysłać wiadomość
- Odczytaj odpowiedź na konsoli
- 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 wysyłania SMS z Node.js
Aby wysyłać SMS z Node.js, Twój JavaScript będzie musiał wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Należy zauważyć, ż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 wysyłania 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.
POST /api?action=sendmsg HTTP/1.1 Connection: close Content-Length: 319 Content-Type: application/json 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) { "messages": [ { "message_id": "7f9016d5-1e23-d85d-b425-30a435af529e", "to_address": "+36201111111", "text": "Hello world!", "create_date": "2021-06-14T10:16:21", "vaild_date": "2021-06-21T10:16:21", "time_to_send": "2021-06-14T10:20:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true } ] }
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 formacie JSON, aby dostarczyć przydatne informacje o przesłaniu 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": "Messages queued for delivery.", "data": { "total_count": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "7f9016d5-1e23-d85d-b425-30a435af529e", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world!", "create_date": "2021-06-14 10:16:21", "valid_until": "2021-06-21 10:16:21", "time_to_send": "2021-06-14 10:20: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 Node.Js za pomocą API SMS (Samouczek wideo)
Ten film pokazuje, jak pobrać i użyć projektu SendScheduledSms.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.
Przykład SMS w Node.Js: SendScheduledSms.mjs (w Notatniku)
Na Rysunku 3 można zobaczyć kod źródłowy projektu SendScheduledSMS, otwarty w Notatniku. Możesz go użyć do edycji kodu, jeśli znasz język programowania Node.js. Zmień wartości zmiennych, aby wysłać niestandardową wiadomość na niestandardowy adres.
Przykład SMS w Node.Js: SendScheduledSms.mjs (w Visual Studio Code)
Jeśli chcesz użyć IDE z kolorowaniem składni, rozszerzeniami i pomocną dokumentacją, użyj Visual Studio Code (Rysunek 4). Jest to darmowe IDE, które pomoże Ci tworzyć lepsze programy. Jeśli znasz język programowania Node.js, śmiało dostosuj wartości zmiennych, aby wysłać niestandardową wiadomość na niestandardowy adres.
Jak sprawdzić, czy SMS został zaakceptowany przez użytkownika HTTP
Po przesłaniu SMS warto sprawdzić bramkę SMS, aby zobaczyć, co otrzymała. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP w konsoli zarządzania bramką SMS Ozeki. Poniższy film pokazuje, na co zwrócić uwagę.
Jak sprawdzić, czy SMS został wysłany do sieci komórkowej
Ostatnim krokiem weryfikacji procedury jest sprawdzenie logów połączenia z siecią komórkową. Może być konieczne włączenie logowania w konfiguracji połączenia przed wysłaniem wiadomości, aby zobaczyć logi. Jeśli logowanie jest włączone, zobaczysz numer telefonu i tekst wiadomości, którą wysłałeś.
Podsumowanie
Główną funkcją tego artykułu było pokazanie, jak wysyłać zaplanowane wiadomości SMS z Node.js przy użyciu użytkownika HTTP bramki SMS Ozeki. Jeśli uważnie wykonałeś wszystkie kroki, powinieneś bez problemu zaplanować wiadomości SMS w swoim programie Node.js. Aby skutecznie przekazywać informacje, należy zwrócić szczególną uwagę na czas, ponieważ może to utrzymać ruch wiadomości w równowadze i sprzyja płynniejszej komunikacji.
Kontynuuj czytanie poradników na stronie Ozeki, aby uzyskać więcej informacji na temat rozwijania swojego systemu wiadomości. Znajdź inne samouczki Node.js, takie jak Jak odbierać SMS w Node.js, i wiele więcej.
Pobierz już teraz bramkę SMS Ozeki i zacznij pracę!
More information
- Node js wyślij SMS za pomocą interfejsu HTTP REST API (przykładowy kod)
- Node js wyślij wiele SMS za pomocą interfejsu HTTP REST API (przykładowy kod)
- Node js zaplanuj SMS za pomocą interfejsu HTTP REST API (przykładowy kod)
- Node js odbierz SMS za pomocą interfejsu HTTP REST API (przykładowy kod)
- Node js usuń SMS za pomocą interfejsu HTTP REST API (przykładowy kod)
- Github Node js SMS API
- Samouczek Node js Hello world