Hogyan lehet SMS-t fogadni Go nyelven

A legegyszerűbb módja az SMS fogadásának Go nyelven az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Amikor ezt az API-t használod, SMS üzeneteket küldhetsz HTTP Post kérések kiadásával az SMS gateway felé. A HTTP Post kérés egy JSON formátumban formázott üzenetet fog tartalmazni. Az SMS gateway továbbítja ezt az SMS-t a címzett telefonjára, és egy HTTP 200 OK választ küld vissza a kérésedre.

hogyan lehet sms-t fogadni go nyelven
1. ábra - Hogyan lehet SMS-t fogadni Go nyelven

Go kód SMS fogadására mobilra

Az alábbi Go SMS kód minta bemutatja, hogyan fogadhatsz SMS-t az Ozeki SMS Gateway http rest sms api-jával a Go github.com/ozekisms/go_send_sms_http_rest_ozeki csomagjának segítségével. Ez a csomag ingyenesen elérhető számodra, és bármilyen projektben felhasználhatod és módosíthatod.

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

1. kód - ReceiveSms.go

Hogyan használd a Go SMS példát:

Ez a Go SMS példa bármilyen Go alkalmazásban használható. A használathoz le kell töltened a github.com/ozekisms/go_send_sms_http_rest_ozeki csomagot. A csomag letöltése után hozzá kell adnod egy referenciát a Go forráskódodhoz. Ez lehetővé teszi, hogy használd a github.com/ozekisms/go_send_sms_http_rest_ozeki csomag által biztosított osztályokat. A Message osztály segítségével létrehozhatod az SMS-t. A MessageApi osztály segítségével elküldheted az SMS-t az SMS gatewaynek. Az SMS gateway továbbítja az üzenetedet a mobilhálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.

ReceiveSms.go letöltése

A cikkben ismertetett forráskód letölthető, felhasználható és módosítható ingyenesen.
Letöltés: ReceiveSms.go.zip (1.05Kb)

Mi található a ReceiveSms.go.zip fájlban?

A ReceiveSms.go.zip fájlban található a SendSms.go fájl, amely tartalmazza a példakódot, hogy hogyan küldj SMS-t. Ez a példakód alább látható.

2. ábra - Mi található a ReceiveSms.go.zip fájlban

Hogyan küldj SMS-t Go nyelven (Egyszerű útmutató)

SMS küldése Go nyelven:

  1. Telepíts egy HTTP API felhasználót
  2. Engedélyezd a Kommunikációs események naplózását a Speciális lapon
  3. Állítsd be a Visual Studio-t
  4. Töltsd le, majd csomagold ki a ReceiveSms.go.zip fájlt
  5. Indítsd el az Ozeki SMS Gateway alkalmazást
  6. Futtasd a ReceiveSms.go Go kódot a parancssorból
  7. Ellenőrizd a naplókat, hogy az SMS elküldődött-e

Ozeki SMS Gateway telepítése és HTTP API felhasználó létrehozása

Ahhoz, hogy SMS-t fogadhass Go nyelven, először telepítened kell az Ozeki SMS Gateway-t. Az SMS gateway telepíthető ugyanarra a számítógépre, ahol a Go kódodat fejleszted bármilyen szövegszerkesztőben, például a Windows notepadben. A telepítés után a következő lépés az, hogy csatlakoztad az Ozeki SMS Gateway-t a mobilhálózathoz. létrehozol egy HTTP SMS API felhasználói fiókot. Hozz létre egy felhasználót "http_user" felhasználónévvel és "qwe123" jelszóval, hogy a példa módosítás nélkül működjön.

Miután a környezet beállításra került, futtathatod a Go kódodat.

HTTP API URL SMS fogadáshoz Go nyelven

Ahhoz, hogy SMS-t küldj Go nyelven, a Go alkalmazásodnak HTTP kérést kell küldenie az SMS gatewaynek. Az API URL alább látható. Figyelj arra, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét kell beírnod. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a Go SMS alkalmazás fut, ez lehet 127.0.0.1. Ha másik számítógépre van telepítve, akkor annak az IP címét kell megadnod.

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

HTTP hitelesítés SMS küldéséhez Go nyelven

A Go SMS kliens hitelesítéséhez a felhasználónevet és a jelszót base64 kódolású karakterláncként kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(felhasználónév+":"+jelszó). Go nyelven a következő kódot használhatod a kódoláshoz:

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
}
	

Például, ha a 'http_user' felhasználónevet és a 'qwe123' jelszót kódolod, a következő base64 kódolású karakterláncot kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés fejléc SMS küldéséhez Go nyelven

Az SMS üzenetek küldéséhez a következő sorokat kell tartalmaznod fejlécben az HTTP kérésben. Figyelj arra, hogy tartalmazunk egy tartalomtípust és egy Authorization fejlécet.

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

HTTP kérés SMS küldéséhez Go nyelven

Az SMS beküldéséhez a Go alkalmazásod egy olyan HTTP kérést fog küldeni, mint az alábbi. Figyelj arra, hogy ez a kérés csak egy HTTP fejlécet tartalmaz, amely meghatározza, hogy milyen típusú választ fogadunk el, és elküldjük az Authorization fejlécet is.

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
	

HTTP válasz, amit a Go SMS példa kap

Amint az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmaz egy státuszkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Emellett egy JSON kódolású struktúrát is visszaad, ami hasznos részleteket nyújt az üzenet beküldéséről.

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

Hogyan fogadj SMS-t Go nyelven a Go SMS API segítségével (Videó útmutató)

Ez a videó bemutatja, hogyan töltheted le a ReceiveSms.go.zip fájlt erről az oldalról. Ha megnézed a videót, észreveszed, hogy a ReceiveSms.go.zip tartalma a Windows asztalra kerül. Azt is látni fogod, hogy a parancssort használjuk az SMS küldéséhez.

1. videó - Hogyan fogadj SMS-t Go nyelven a Go SMS API segítségével (Videó útmutató)

Go SMS példa: ReceiveSms.go

Az alábbi példakód a ReceiveSms.go része.

3. ábra - ReceiveSms.go fájl

Hogyan ellenőrizd, hogy az SMS-t elfogadta-e a HTTP felhasználó

Az SMS beküldése után érdemes ellenőrizni az SMS gatewayt, hogy mit kapott meg. A naplót az Ozeki SMS Gateway kezelőfelületén keresztül ellenőrizheted, ahol megnyithatod a HTTP felhasználó részleteit. A következő videó bemutatja, hogy mire kell figyelni.

2. videó - Hogyan ellenőrizd, hogy az SMS-t elfogadta-e a HTTP felhasználó (Videó útmutató)

Összegzés

Ez a cikk bemutatta az SMS fogadás alapvető lépéseit Go nyelven az Ozeki SMS Gateway segítségével. Ez a megoldás nagyon hasznos lehet, ha van egy meghatározott hely az beérkező üzeneteidnek, ebben az esetben továbbíthatod őket egy Go programnak. Az Ozeki SMS Gateway kiváló naplózási képességeket kínál, ami azt jelenti, hogy gyorsan megtalálhatod a hibákat, és simábbá teszi a munkát.

Ne felejtsd el folytatni az olvasást az Ozeki oktatóoldalán, ahol további információkat találhatsz hasonló témákról, például SMS ütemezése Go nyelven.

Most már csak annyi a teendő, hogy letöltöd az Ozeki SMS Gateway-t és elkezded a munkát!

More information