Jak wysłać SMS z Go

Najprostszym sposobem wysłania SMS z Go 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 wysłać sms z go
Rysunek 1 - Jak wysłać SMS z Go

Kod Go do wysłania SMS na telefon

Poniższy przykład kodu SMS w Go demonstruje, jak możesz wysłać SMS używając interfejsu HTTP rest sms api Ozeki SMS Gateway z pakietem Go github.com/ozekisms/go_send_sms_http_rest_ozeki. Ten pakiet jest dostarczany bezpłatnie i możesz go używać oraz modyfikować w dowolnym z twoich projektów.

SendSms.go
package main

import (
	"fmt"
	
	ozeki "github.com/ozekisms/go_send_sms_http_rest_ozeki"
)

func main() {
	configuration := ozeki.NewConfiguration(
		"http_user",
		"qwe123",
		"http://127.0.0.1:9509/api",
	)

	msg := ozeki.NewMessage()
	msg.ToAddress = "+36201111111"
	msg.Text = "Hello world!"

	api := ozeki.NewMessageApi(configuration)

	result := api.Send(msg)

	fmt.Println(result)
}
	

Kod 1 - SendSms.go

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

Ten przykład SMS w Go może być używany w dowolnej aplikacji Go. Aby go użyć, musisz pobrać pakiet github.com/ozekisms/go_send_sms_http_rest_ozeki. Po pobraniu pakietu trzeba dodać do niego referencję w swoim kodzie źródłowym Go. To pozwoli ci używać klas dostarczonych przez pakiet github.com/ozekisms/go_send_sms_http_rest_ozeki. 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 SendSms.go

Kod źródłowy omówiony w tym artykule może być pobrany, użyty i zmodyfikowany bezpłatnie.
Pobierz: SendSms.go.zip (992B)

Co znajduje się w pliku SendSms.go.zip?

W pliku SendSms.go.zip znajdziesz plik SendSms.go, 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 SendSms.go.zip

Jak zainstalować pakiet github.com/ozekisms/go_send_sms_http_rest_ozeki

go get github.com/ozekisms/go_send_sms_http_rest_ozeki
	

Kod 2 - Polecenie do zainstalowania pakietu github.com/ozekisms/go_send_sms_http_rest_ozeki

Wideo 1 - Instalacja pakietu github.com/ozekisms/go_send_sms_http_rest_ozeki (Samouczek wideo)

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

Aby wysłać SMS z Go:

  1. Zainstaluj użytkownika HTTP API
  2. Włącz Logowanie zdarzeń komunikacji na karcie Zaawansowane
  3. Skonfiguruj Visual Studio
  4. Pobierz, a następnie rozpakuj plik SendSms.go.zip
  5. Uruchom aplikację Ozeki SMS Gateway
  6. Uruchom kod Go SendSend.go 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 z Go, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod Go 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ć 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 Go.

URL API HTTP do wysyłania SMS z Go

Aby wysłać SMS z Go, twoje Go będzie musiało 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 SMS w Go, 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-ów z Go

Aby uwierzytelnić klienta SMS w Go, należy wysłać nazwę użytkownika i hasło w postaci zakodowanej w base64 do serwera w żądaniu HTTP. Używany format to: base64(nazwa_użytkownika+":"+hasło). W Go można użyć następującego kodu do wykonania tego kodowania:

import b64 "encoding/base64"

func (api *MessageApi) createAuthorizationHeader(username string, password string) string {
	var usernamePassword string = username + ":" + password
	var usernamePasswordEncoded string = b64.StdEncoding.EncodeToString([]byte(usernamePassword))
	return "Basic " + 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 Go

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

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

Żądanie HTTP do wysyłania SMS-ów z Go

Aby przesłać SMS, Twoja aplikacja w Go 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 JSON. Zawiera numer odbiorcy i tekst wiadomości.

POST /api?action=sendmsg HTTP/1.1
Content-Length: 434
Content-Type: application/json
Accept-Encoding: gzip
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Go-http-client/1.1

{
	"messages":	[
		{
			"message_id": "60ce97a2-dff6-11eb-990e-74d4355e997d",
			"from_connection": "",
			"from_address": "",
			"from_station": "",
			"to_connection": "",
			"to_address": "+36201111111",
			"to_station": "",
			"text": "Hello world!",
			"create_date": "2021-07-08T16:11:24",
			"valid_until": "2021-07-15T16:11:24",
			"time_to_send": "2021-07-08T16:11:24",
			"submit_report_requested": true,
			"view_report_requested": true,
			"delivery_report_requested": true,
			"tags": [],
			"status": ""
		}
	]
}
	

Odpowiedź HTTP otrzymana przez przykład SMS w Go

Gdy brama SMS odbierze 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 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, 08 Jul 2021 16:08:52 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": "60ce97a2-dff6-11eb-990e-74d4355e997d",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world!",
	      "create_date": "2021-07-08 16:11:24",
	      "valid_until": "2021-07-15 16:11:24",
	      "time_to_send": "2021-07-08 16:11:24",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

Podłącz swoją bramkę SMS do sieci komórkowej i utwórz konto użytkownika HTTP API

Zakładamy, że masz już zainstalowaną bramkę SMS Ozeki i podłączoną do sieci komórkowej. Aby móc wysyłać SMS-y na telefon komórkowy z Go, musisz skonfigurować konto użytkownika HTTP API w bramce SMS Ozeki.

Wideo 2 - Jak skonfigurować konto użytkownika HTTP API (Samouczek wideo)

Jak wysyłać SMS-y z Go przy użyciu API SMS w Go (Samouczek wideo)

To wideo pokazuje, jak pobrać plik SendSms.go.zip z tej strony. Jeśli obejrzysz wideo, zauważysz, że zawartość SendSms.go.zip jest umieszczana na pulpicie Windows. Zobaczysz również, że uruchamiamy wiersz poleceń, aby wysłać SMS.

Przykład SMS w Go: SendSms.go

Poniższy przykładowy kod jest częścią pliku SendSms.go.

Rysunek 3 - Plik SendSms.go

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

Po przesłaniu SMS-a warto sprawdzić w bramce SMS, co zostało odebrane. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP w konsoli zarządzania bramki SMS Ozeki. Poniższe wideo pokazuje, na co zwrócić uwagę.

Wideo 4 - Jak wysłać SMS z kodem Go powyżej (Samouczek wideo)

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 treść wysłanej wiadomości.

Wideo 5 - Jak sprawdzić, czy żądanie zostało zaakceptowane przez klienta SMPP (Samouczek wideo)

Jak odbierać SMS-y na telefonie z Androidem (Samouczek wideo)

W tym filmie pokazujemy, jak można odbierać wiadomości SMS na telefonie z Androidem. Zobaczysz zwykłą stronę główną telefonu z Androidem oraz powiadomienie o przychodzącej wiadomości SMS. Dowiesz się również, jak otworzyć wiadomość SMS. Film trwa tylko 18 sekund, ale można na nim zobaczyć cały proces.

Wideo 6 - Jak odbierać SMS-y na telefonie z Androidem (Samouczek wideo)

Podsumowanie

Celem tego artykułu było wyjaśnienie wysyłania SMS-ów w Go z pomocą Ozeki SMS Gateway. Dzięki temu rozwiązaniu możesz wysyłać wiadomości za pomocą kodu Go, a wszystkie niezbędne informacje i narzędzia zostały przedstawione w powyższym przewodniku. Ozeki SMS Gateway można bardzo dobrze kontrolować za pomocą kodu Go, co potwierdza, że program jest konfigurowalny i łatwy w użyciu. Warto również wspomnieć, że Ozeki SMS Gateway działa w środowisku, które kontrolujesz, co oznacza, że lista kontaktów i dane są w bezpiecznych rękach.

Przeczytaj więcej o podobnych rozwiązaniach na stronie z samouczkami Ozeki, gdzie znajdziesz więcej informacji na tematy takie jak planowanie SMS-ów w Go.

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

More information