Kako poslati SMS iz Go-a

Najjednostavniji način za slanje SMS-a iz Go-a je korištenje ugrađenog HTTP/Rest SMS API-ja Ozeki SMS Gatewaya. Kada koristite ovaj API, slat ćete SMS poruke slanjem HTTP Post zahtjeva SMS gatewayu. HTTP Post zahtjev će sadržavati poruku formatiranu u json formatu. SMS gateway će poslati ovaj SMS na telefon primatelja i vratit će HTTP 200 OK odgovor na vaš zahtjev.

kako poslati sms iz go-a
Slika 1 - Kako poslati SMS iz Go-a

Go kod za slanje SMS-a na mobilni telefon

Go SMS primjer koda ispod pokazuje kako možete poslati SMS koristeći http rest SMS API Ozeki SMS Gatewaya koristeći Go github.com/ozekisms/go_send_sms_http_rest_ozeki paket. Ovaj paket vam je dostupan besplatno i možete ga koristiti i mijenjati u bilo kojem od vaših projekata.

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 = "Pozdrav svijete!"

	api := ozeki.NewMessageApi(configuration)

	result := api.Send(msg)

	fmt.Println(result)
}
	

Kod 1 - SendSms.go

Kako koristiti Go SMS primjer:

Ovaj Go SMS primjer može se koristiti u bilo kojoj Go aplikaciji. Da biste ga koristili, morate preuzeti github.com/ozekisms/go_send_sms_http_rest_ozeki paket. Nakon što je paket preuzet, trebate dodati referencu na njega u svom Go izvornom kodu. To će vam omogućiti korištenje klasa koje pruža github.com/ozekisms/go_send_sms_http_rest_ozeki paket. Možete koristiti klasu Message za kreiranje SMS-a. Možete koristiti klasu MessageApi za slanje SMS-a SMS gatewayu. SMS gateway će proslijediti vašu poruku mobilnoj mreži bilo putem bežične veze ili putem interneta.

Preuzmite SendSms.go

Izvorni kod objašnjen u ovom članku može se besplatno preuzeti, koristiti i mijenjati.
Preuzmi: SendSms.go.zip (992B)

Što se nalazi u SendSms.go.zip datoteci?

U SendSms.go.zip pronaći ćete SendSms.go datoteku, koja sadrži primjer koda koji vam pokazuje kako poslati SMS. Ovaj primjer koda je naveden ispod.

Slika 2 - Što se nalazi unutar SendSms.go.zip

Kako instalirati github.com/ozekisms/go_send_sms_http_rest_ozeki paket

go get github.com/ozekisms/go_send_sms_http_rest_ozeki
	

Kod 2 - Naredba za instalaciju github.com/ozekisms/go_send_sms_http_rest_ozeki paketa

Video 1 - Instaliranje github.com/ozekisms/go_send_sms_http_rest_ozeki paketa (Video tutorial)

Kako poslati SMS iz Go-a (Jednostavne smjernice)

Za slanje SMS-a iz Go-a:

  1. Instalirajte HTTP API korisnika
  2. Omogućite bilježenje komunikacijskih događaja na kartici Napredno
  3. Postavite Visual Studio
  4. Preuzmite i raspakirajte SendSms.go.zip datoteku
  5. Pokrenite Ozeki SMS Gateway aplikaciju
  6. Pokrenite SendSend.go Go kod koristeći naredbeni redak
  7. Provjerite zapisnike da vidite je li SMS poslan

Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika

Da biste mogli slati SMS iz Go-a, prvo morate instalirati Ozeki SMS Gateway. SMS gateway se može instalirati na istom računalu gdje razvijate svoj Go kod u bilo kojem tekstualnom editoru, kao što je Windows notepad. Nakon instalacije, sljedeći korak je povezati Ozeki SMS Gateway s mobilnom mrežom. Možete poslati testni SMS iz Ozeki GUI-a kako biste potvrdili da vaša mobilna mrežna veza radi. Konačni korak za pripremu vašeg okruženja je kreirati HTTP SMS API korisnički račun. Kreirajte korisnika s korisničkim imenom "http_user" i lozinkom "qwe123" kako bi primjer radio bez izmjena.

Nakon što je okruženje postavljeno, možete pokrenuti svoj Go kod.

HTTP API URL za slanje SMS-a iz Go-a

Da biste poslali SMS iz Go-a, vaš Go će morati poslati HTTP zahtjev SMS gatewayu. API URL je prikazan ispod. Imajte na umu da IP adresa (127.0.0.1) treba biti zamijenjena IP adresom vašeg SMS gatewaya. Ako je Ozeki SMS Gateway instaliran na istom računalu gdje se pokreće Go SMS aplikacija, ovo može biti 127.0.0.1. Ako je instaliran na drugom računalu, treba biti IP adresa tog računala.

http://127.0.0.1:9509/api?action=rest
	

HTTP autentifikacija za slanje SMS-a iz Go-a

Za autentifikaciju Go SMS klijenta, potrebno je poslati korisničko ime i lozinku u base64 kodiranom stringu na server u HTTP zahtjevu. Korišteni format je: base64(korisničko_ime+":"+lozinka). U Go-u možete koristiti sljedeći kod za ovo kodiranje:

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 primjer, ako kodirate korisničko ime 'http_user' i lozinku 'qwe123', dobit ćete sljedeći base64 kodirani string: aHR0cF91c2VyOnF3ZTEyMw==. Za slanje

HTTP zaglavlje zahtjeva za slanje SMS-a iz Go-a

Za slanje SMS poruka, potrebno je uključiti sljedeće retke kao zaglavlja u HTTP zahtjev. Imajte na umu da uključujemo Content-Type i Authorization zaglavlje.

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

HTTP zahtjev za slanje SMS-a iz Go-a

Za slanje SMS-a, vaša Go aplikacija će poslati HTTP zahtjev sličan donjem primjeru. Imajte na umu da ovaj zahtjev sadrži dio HTTP zaglavlja i dio HTTP tijela. HTTP tijelo je JSON kodirani podatkovni string. Sadrži broj primatelja i tekst poruke.

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": ""
		}
	]
}
	

HTTP odgovor primljen od Go SMS primjera

Nakon što SMS gateway primi ovaj zahtjev, generirat će HTTP odgovor. HTTP odgovor će sadržavati statusni kod, kako bi naznačio je li zahtjev za slanje SMS-a bio uspješan ili ne. Također će vratiti JSON kodiranu strukturu koja vam pruža korisne detalje o slanju poruke.

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"
	    }
	  ]
	}
}
	

Povežite svoj SMS gateway s mobilnom mrežom i kreirajte HTTP API korisnički račun

Pretpostavljamo da ste već instalirali Ozeki SMS Gateway, i da ste ga povezali s mobilnom mrežom. Kako biste mogli slati SMS na mobilni telefon iz Go-a, potrebno je postaviti HTTP API korisnički račun u Ozeki SMS Gatewayu.

Video 2 - Kako postaviti HTTP API korisnički račun (Video tutorial)

Kako poslati SMS iz Go-a koristeći Go SMS API (Video tutorial)

Ovaj video vam pokazuje kako preuzeti datoteku SendSms.go.zip s ove stranice. Ako pogledate video, primijetit ćete da su sadržaji SendSms.go.zip datoteke smješteni na Windows radnu površinu. Također ćete vidjeti da koristimo naredbeni redak kako bismo poslali SMS.

Go SMS primjer: SendSms.go

Primjer koda u nastavku dio je SendSms.go datoteke.

Slika 3 - SendSms.go datoteka

Kako provjeriti je li SMS prihvaćen od strane HTTP korisnika

Nakon što je SMS poslan, dobra je praksa provjeriti vaš SMS gateway, kako biste vidjeli što je primio. Dnevnik možete provjeriti otvaranjem detalja HTTP korisnika iz Ozeki SMS Gateway upravljačke konzole. Sljedeći video vam pokazuje što trebate tražiti.

Video 4 - Kako poslati SMS s Go kodom iznad (Video tutorial)

Kako provjeriti je li SMS poslan na mobilnu mrežu

Završni korak u provjeri postupka je pogledati zapisnike veze s mobilnom mrežom. Možda ćete morati uključiti bilježenje u konfiguraciji veze prije nego što pošaljete poruku kako biste vidjeli zapisnike. Ako je bilježenje omogućeno, vidjet ćete telefonski broj i tekst poruke koju ste poslali.

Video 5 - Kako testirati je li zahtjev prihvaćen od strane SMPP klijenta (Video tutorial)

Kako primiti SMS na Android telefonu (Video tutorial)

U ovom videu prikazujemo vam kako možete primati SMS poruke na svom Android telefonu. Vidjet ćete običnu početnu stranicu Android telefona i obavijest o dolaznoj SMS poruci. Također ćete naučiti kako otvoriti SMS. Video traje samo 18 sekundi, ali na njemu možete vidjeti cijeli proces.

Video 6 - Kako primiti SMS na Android telefonu (Video tutorial)

Zaključak

Svrha ovog članka bila je objasniti slanje SMS poruka u Go uz pomoć Ozeki SMS Gatewaya. S ovim rješenjem možete slati poruke s Go kodovima, a sva potrebna znanja i alati dostupni su u gornjem vodiču. Ozeki SMS Gateway se vrlo dobro može kontrolirati Go kodovima, što dokazuje činjenicu da je ovaj program prilagodljiv i jednostavan za rad. Također, valja napomenuti da Ozeki SMS Gateway radi u okruženju koje kontrolirate, što znači da su kontakt lista i podaci na sigurnom mjestu.

Pročitajte više o sličnim rješenjima na Ozekijevoj stranici s tutorijalima, gdje možete pronaći više informacija o temama kao što su zakazivanje SMS poruka u Go.

Jedino što sada preostaje je preuzeti Ozeki SMS Gateway i početi raditi!

More information