Jak odbierać SMS-y w Go

Najprostszym sposobem na odbieranie SMS-ów w Go jest użycie wbudowanego interfejsu HTTP/REST SMS API Ozeki SMS Gateway. Korzystając z tego API, możesz wysyłać wiadomości SMS, wysyłając żądanie 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 odbierać sms w go
Rysunek 1 - Jak odbierać SMS-y w Go

Kod Go do odbierania SMS-ów na telefon

Poniższy przykład kodu Go do obsługi SMS demonstruje, jak można odbierać SMS-y za pomocą interfejsu HTTP REST SMS API Ozeki SMS Gateway, korzystając z pakietu 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 dowolnych swoich projektach.

ReceiveSms.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",
	)

	api := ozeki.NewMessageApi(configuration)

	result := api.DownloadIncoming()

	fmt.Println(result)

	for i := 0; i < len(result.Messages); i++ {
		fmt.Println(result.Messages[i])
	}
}
	

Kod 1 - ReceiveSms.go

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

Ten przykład kodu Go do obsługi SMS 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 należy dodać do niego referencję w swoim kodzie źródłowym Go. To pozwoli Ci korzystać z klas dostarczonych przez pakiet github.com/ozekisms/go_send_sms_http_rest_ozeki. Możesz użyć klasy Message do tworzenia SMS-ów. Możesz użyć klasy MessageApi do wysyłania SMS-ów do bramki SMS. Bramka SMS przekieruje Twoją wiadomość do sieci komórkowej za pośrednictwem połączenia bezprzewodowego lub przez Internet.

Pobierz ReceiveSms.go

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

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

W pliku ReceiveSms.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 pliku ReceiveSms.go.zip

Jak wysyłać SMS-y z Go (proste wskazówki)

Aby wysyłać SMS-y z Go:

  1. Zainstaluj użytkownika HTTP API
  2. Włącz opcję Logowanie zdarzeń komunikacyjnych w zakładce Zaawansowane
  3. Skonfiguruj Visual Studio
  4. Pobierz i rozpakuj plik ReceiveSms.go.zip
  5. Uruchom aplikację Ozeki SMS Gateway
  6. Uruchom kod Go ReceiveSms.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 odbierać SMS-y w 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 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 Go.

URL API HTTP do odbierania SMS-ów z Go

Aby wysyłać SMS-y z Go, Twoja aplikacja Go 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 Go, 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 Go

Aby uwierzytelnić klienta SMS w Go, 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 Go możesz 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 wysyłać wiadomości SMS, musisz uwzględnić 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 wysłania SMS-a z Go

Aby przesłać SMS, Twoja aplikacja w Go wyśle żądanie HTTP podobne do poniższego. Zauważ, że to żądanie zawiera tylko nagłówek HTTP, który określa, jaki typ odpowiedzi akceptujemy, oraz wysyła również nagłówek autoryzacyjny.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Accept: application/json
Accept-Encoding: gzip
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Go-http-client/1.1
	

Odpowiedź HTTP otrzymana przez przykład SMS w Go

Gdy brama SMS otrzyma to żądanie, wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, wskazujący, czy żądanie przesłania SMS-a zakończyło się sukcesem, czy nie. Zwróci również strukturę zakodowaną w formacie JSON, dostarczając przydatnych informacji 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: Fri, 09 Jul 2021 09:16:35 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": "6f73375b-e085-11eb-8d0e-74d4355e997d",
	      "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-09 09:15:27",
	      "valid_until": "2021-07-16 09:15:27",
	      "time_to_send": "2021-07-09 09:15:27",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "6f6f6764-e085-11eb-8d0e-74d4355e997d",
	      "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-09 09:15:26",
	      "valid_until": "2021-07-16 09:15:27",
	      "time_to_send": "2021-07-09 09:15:27",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "6f73375b-e085-11eb-8d0f-74d4355e997d",
	      "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-09 09:15:27",
	      "valid_until": "2021-07-16 09:15:27",
	      "time_to_send": "2021-07-09 09:15:27",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}
	

Jak odbierać SMS-y z Go za pomocą API SMS w Go (Samouczek wideo)

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

Wideo 1 - Jak odbierać SMS-y z Go za pomocą API SMS w Go (Samouczek wideo)

Przykład SMS w Go: ReceiveSms.go

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

Rysunek 3 - Plik ReceiveSms.go

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 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 artykuł pokazał podstawowe kroki odbierania SMS-ów w Go z pomocą Ozeki SMS Gateway. To rozwiązanie może być bardzo przydatne, gdy masz określone miejsce dla swoich przychodzących wiadomości, w tym przypadku, możesz przekierować je do programu w Go. Ozeki SMS Gateway oferuje doskonałe możliwości logowania, co oznacza, że możesz szybko znaleźć błędy, ułatwiając pracę.

Koniecznie przeczytaj więcej na stronie samouczków Ozeki, gdzie znajdziesz więcej informacji na podobne tematy, takie jak planowanie SMS-ów w Go.

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

More information