Jak wysłać wiele wiadomości SMS z R

Najprostszym sposobem wysłania wielu wiadomości SMS z R 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.

jak wysłać wiele wiadomości SMS z R
Rysunek 1 - Jak wysłać wiele wiadomości SMS z R

Kod R do wysłania wielu wiadomości SMS na telefon

Poniższy przykładowy kod R do wysyłania SMS demonstruje, jak możesz wysyłać SMS-y za pomocą interfejsu HTTP REST SMS API Ozeki SMS Gateway, korzystając z biblioteki R Ozeki.Libs.Rest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym z Twoich projektów.

SendMultipleSms.R
library(Ozeki.Libs.Rest)


configuration <- Ozeki.Libs.Rest::Configuration$new(
  username = "http_user",
  password = "qwe123",
  api_url = "http://127.0.0.1:9509/api"
)

msg1 <- Ozeki.Libs.Rest::Message$new()
msg1$to_address <- "+36201111111"
msg1$text <- "Hello world 1"

msg2 <- Ozeki.Libs.Rest::Message$new()
msg2$to_address <- "+36202222222"
msg2$text <- "Hello world 2"

msg3 <- Ozeki.Libs.Rest::Message$new()
msg3$to_address <- "+36203333333"
msg3$text <- "Hello world 3"

api <- Ozeki.Libs.Rest::MessageApi$new(configuration)

result <- api$send(list(msg1, msg2, msg3))

print(result$to_string())
	

Kod 1 - SendMultipleSms.R

Jak używać przykładu R do wysyłania SMS:

Ten przykład R do wysyłania SMS może być używany w dowolnej aplikacji R. 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 R. 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 wysłania SMS-a do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej poprzez połączenie bezprzewodowe lub przez Internet.

Pobierz SendMultipleSms.R

Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: SendMultipleSms.R.zip (407B)

Co znajduje się w pliku SendMultipleSms.R.zip?

W pliku SendMultipleSms.R.zip znajdziesz plik SendMultipleSms.R, 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 SendMultipleSms.R.zip

Jak wysłać SMS z R (proste wskazówki)

Aby wysłać SMS z R:

  1. Zainstaluj użytkownika HTTP API
  2. Włącz Logowanie zdarzeń komunikacyjnych na karcie Zaawansowane
  3. Skonfiguruj Visual Studio
  4. Pobierz, a następnie rozpakuj plik SendMultipleSms.R.zip
  5. Uruchom aplikację Ozeki SMS Gateway
  6. Uruchom kod R SendMultipleSms.R za pomocą wiersza poleceń
  7. Sprawdź logi, aby zobaczyć, czy SMS został wysłany

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

Aby móc wysyłać SMS-y z R, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod R 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 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 R.

URL API HTTP do wysyłania SMS-ów z R

Aby wysłać SMS-y z R, Twoje R będzie musiało wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Pamiętaj, ż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 do wysyłania SMS-ów, 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-ów z R

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

username_password <- paste(username, ":", password, sep="")
username_password_encoded <- base64enc::base64encode(charToRaw(username_password))
return (paste("Basic", username_password_encoded, sep=" "))
	

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 R

Aby wysłać wiadomości SMS, musisz uwzględnić następujące linie jako nagłówki w żądaniu HTTP. Zauważ, że uwzględniamy typ zawartości i nagłówek Authorization.

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

Żądanie HTTP do wysłania SMS z R

Aby przesłać SMS, Twoja aplikacja R 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.

POST /api?action=sendmsg HTTP/1.1
Content-Length: 962
Content-Type: application/json
Accept: application/json
Accept-Encoding: deflate, gzip
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: libcurl/7.64.1 r-curl/4.3.2 httr/1.4.2

{
	"messages":
	[
		{
			"message_id": "fcb65595-06bd-41fe-84e5-f3f8912ff0a1",
			"to_address": "+36201111111",
			"text": "Hello world 1",
			"create_date": "2021-07-13T12:46:23",
			"valid_until": "2021-07-20T12:46:23",
			"time_to_send": "2021-07-13T12:46:23",
			"is_submit_report_requested": true,
			"is_delivery_report_requested": true,
			"is_view_report_requested": true
		},
		{
			"message_id": "e14c1980-ca12-4d83-92f3-b25ebf6e1b97",
			"to_address": "+36202222222",
			"text":"Hello world 2",
			"create_date": "2021-07-13T12:46:23",
			"valid_until": "2021-07-20T12:46:23",
			"time_to_send": "2021-07-13T12:46:23",
			"is_submit_report_requested": true,
			"is_delivery_report_requested": true,
			"is_view_report_requested": true
		},
		{
			"message_id": "5f7f0290-172a-446e-a9fe-cf6b22c84fe6",
			"to_address": "+36203333333",
			"text": "Hello world 3",
			"create_date": "2021-07-13T12:46:23",
			"valid_until": "2021-07-20T12:46:23",
			"time_to_send": "2021-07-13T12:46:23",
			"is_submit_report_requested": true,
			"is_delivery_report_requested": true,
			"is_view_report_requested": true
		}
	]
}
	

Odpowiedź HTTP otrzymana przez przykład SMS w R

Po otrzymaniu tego żądania brama SMS wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, aby wskazać, 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: Tue, 13 Jul 2021 14:08:09 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked
  
{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "Messages queued for delivery.",
	"data": {
	  "total_count": 3,
	  "success_count": 3,
	  "failed_count": 0,
	  "messages": [
	    {
	      "message_id": "fcb65595-06bd-41fe-84e5-f3f8912ff0a1",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-07-13 12:46:23",
	      "valid_until": "2021-07-20 12:46:23",
	      "time_to_send": "2021-07-13 12:46:23",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    },
	    {
	      "message_id": "e14c1980-ca12-4d83-92f3-b25ebf6e1b97",
	      "from_station": "%",
	      "to_address": "+36202222222",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-07-13 12:46:23",
	      "valid_until": "2021-07-20 12:46:23",
	      "time_to_send": "2021-07-13 12:46:23",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    },
	    {
	      "message_id": "5f7f0290-172a-446e-a9fe-cf6b22c84fe6",
	      "from_station": "%",
	      "to_address": "+36203333333",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-07-13 12:46:23",
	      "valid_until": "2021-07-20 12:46:23",
	      "time_to_send": "2021-07-13 12:46:23",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

Jak wysłać SMS z R za pomocą API SMS w R (Samouczek wideo)

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

Przykład SMS w R: SendMultipleSms.R

Poniższy przykładowy kod jest częścią pliku SendMultipleSms.R.

kod źródłowy r do wysłania wielu wiadomości sms
Rysunek 3 - Plik SendMultipleSms.R

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

Po przesłaniu SMS-a warto sprawdzić w swojej bramie SMS, co otrzymała. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP z 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

Ten artykuł miał na celu wyjaśnienie kroków związanych z wysyłaniem wielu SMS-ów w R przy użyciu Ozeki SMS Gateway. To rozwiązanie jest idealne do dotarcia do wielu klientów za pomocą jednego kodu w R. Zaleca się wykorzystanie tej wiedzy, aby osiągnąć wysoką wydajność w udostępnianiu informacji. Ozeki SMS Gateway umożliwia zapisywanie wiadomości SMS w bazie danych i oferuje różne możliwości raportowania, dostarczając informacji o wiadomościach.

Kontynuuj czytanie na stronie tutorialowej Ozeki, gdzie znajdziesz więcej informacji na tematy takie jak usuwanie SMS-ów w R.

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

More information