Tutorial Membuat Server SMS Sederhana Di Golang - CRUDPRO

Tutorial Membuat Server SMS Sederhana Di Golang

Tutorial Membuat Server SMS Sederhana Di Golang

Pendahuluan:

Di dunia yang serba cepat sekarang ini, SMS sudah menjadi model komunikasi yang penting. Membangun server SMS Anda sendiri bisa membantu Anda mengirim dan menerima pesan dengan cara yang lebih disesuaikan dan efektif. Pada artikel berikut, kami akan membantu Anda melalui proses pembuatan server SMS sederhana di Golang, dengan memanfaatkan kekuatan Twilio API. Diakhir tutorial ini, Anda akan memiliki server SMS yang bisa digunakan untuk mengirim dan menerima pesan.

Persyaratan:

  • Pengetahuan dasar Golang
  • Akun Twilio dengan nomor telephone terverifikasi (daftar di https://www.twilio.com)
  • Instal Go di mesin Anda (unduh di https://golang.org/dl/)

Cara 1: Siapkan Project Anda

  1. Buat directory baru untuk project Anda:
    $ mkdir sms-server
    		$ cd sms-server
  2. Inisialisasi proyek Anda sebagai modul Go:
    $ go mod init github.com/yourusername/sms-server
  3. Instal pustaka Twilio Go:
    $ go get github.com/twilio/twilio-go

Cara 2:Konfigurasikan Twilio Credentials

  1. Masuk ke akun Twilio Anda dan dapatkan SID Akun dan Token Autentikasi Anda dari Twilio Console.
  2. Setel credentials Twilio Anda sebagai environment variables:
$ export TWILIO_ACCOUNT_SID="your_account_sid"
$ export TWILIO_AUTH_TOKEN="your_auth_token"

Cara 3:Buat Server SMS Sederhana

  1. Buat file baru bernama main.go di direktori sms-server.
  2. Di main.go, import package yang diperlukan dan inisialisasi Twilio client:
  3. package main
    
    		import (
    		 "encoding/json"
    		 "fmt"
    		 "log"
    		 "net/http"
    		 "os"
    
    		 "github.com/twilio/twilio-go"
    		 "github.com/twilio/twilio-go/rest/api/v2010"
    		)
    
    		func main() {
    		 accountSid := os.Getenv("TWILIO_ACCOUNT_SID")
    		 authToken := os.Getenv("TWILIO_AUTH_TOKEN")
    		 client := twilio.NewRestClient(accountSid, authToken)
    
    		 // Rest of the code
    		}
  4. Buat fungsi asendSMS untuk mengirim pesan SMS menggunakan klien Twilio:
    func sendSMS(client *twilio.RestClient, to, body string) (*v2010.Message, error) {
    		 from := "your_twilio_phone_number" // Replace with your Twilio phone number
    		 params := &v2010.CreateMessageParams{
    		  To:   to,
    		  From: from,
    		  Body: body,
    		 }
    
    		 message, err := client.ApiV2010.CreateMessage(params)
    		 return message, err
    		}
  5. Buat fungsi penanganan HTTP untuk menangani permintaan yang masuk:
    func smsHandler(w http.ResponseWriter, r *http.Request) {
    		 if r.Method != http.MethodPost {
    		  w.WriteHeader(http.StatusMethodNotAllowed)
    		  return
    		 }
    
    		 var data struct {
    		  To   string `json:"to"`
    		  Body string `json:"body"`
    		 }
    
    		 err := json.NewDecoder(r.Body).Decode(&data)
    		 if err != nil {
    		  w.WriteHeader(http.StatusBadRequest)
    		  return
    		 }
    
    		 message, err := sendSMS(client, data.To, data.Body)
    		 if err != nil {
    		  w.WriteHeader(http.StatusInternalServerError)
    		  return
    		 }
    
    		 w.Header().Set("Content-Type", "application/json")
    		 json.NewEncoder(w).Encode(struct {
    		  MessageID string `json:"message_id"`
    		 }{
    		  MessageID: string(message.Sid),
    		 })
    		}
  6. Siapkan server HTTP untuk mendengarkan permintaan masuk dan merutekannya ke smsHandler:
    func main() {
    		 accountSid := os.Getenv("TWILIO_ACCOUNT_SID")
    		 authToken := os.Getenv("TWILIO_AUTH_TOKEN")
    		 client := twilio.NewRestClient(accountSid, authToken)
    
    		 http.HandleFunc("/sms", func(w http.ResponseWriter, r *http.Request) {
    		  smsHandler(client, w, r)
    		 })
    
    		 port := "8080"
    		 fmt.Printf("SMS server is listening on port %s...\n", port)
    		 log.Fatal(http.ListenAndServe(":"+port, nil))
    		}

Cara 4:Jalankan Server SMS Anda

  1. Di terminal Anda, arahkan ke direktori sms-server.
  2. Jalankan server:
  3. $ go run main.go
  4. Server sekarang harus running and listening pada port 8080.

Cara 5:Uji Server SMS Anda

Untuk menguji server Anda, Anda dapat menggunakan alat seperti curl atau Postman untuk mengirim permintaan POST ke http://localhost:8080/sms dengan muatan JSON yang berisi kolom "to" dan "body".

Misalnya, menggunakan curl:

$ curl -X POST -H "Content-Type: application/json" -d '{"to": "+1234567890", "body": "Hello, Golang!"}' http://localhost:8080/sms

Ganti +1234567890 dengan nomor telephone yang menerima. Bila berhasil, server akan memberi respon dengan object JSON yang berisi kolom "message_id".

Kesimpulan:

Selamat! Anda telah berhasil membuat server SMS sederhana menggunakan Golang dan Twilio.

Anda sekarang bisa menggunakan server ini untuk mengirim dan menerima pesan SMS dengan cara yang lebih disesuaikan dan efektif.

Dan jika Anda ingin lebih meningkatkan server Anda, Anda bisa menambahkan feature seperti untuk menangani pesan masuk atau menyimpan pesan dalam database.