Most of the time with Twilio we want to do one of two things: send an SMS and parse incoming SMSes. This package makes it easy to do both.
In the most simple case, you can set three environment variables per Twilio
(TWILIO_SID
, TWILIO_AUTH_TOKEN
, TWILIO_PHONE_NUMBER
) and then use a
little function to fire off your SMSes.
package main
import (
"baby-twilio"
"log"
)
func main() {
if _, err := twilio.SendSMS("+1-212-555-1212", "Well, hello there."); err != nil {
log.Fatal("It didn‘t work: ", err)
}
}
For more thorough examples, including ones that don‘t require setting
environment variables, see the examples
directory.
Parsing incoming SMSes is just a matter of pointing a webhook at your server in the Twilio admin interface and parsing incoming requests as such:
package main
import (
"github.com/meowgorithm/baby-twilio"
"log"
"net/http"
)
func main() {
// Handle incoming HTTP requests
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
var (
sms *twilio.Request
err error
)
// Decode request data from Twilio
if sms, err = twilio.NewDecoder(r); err != nil {
log.Println("could not decode incoming SMS: ", err)
return
}
log.Printf("Incoming SMS from %s: %s", sms.From, sms.Body)
})
http.ListenAndServe(":8000", nil)
}
For local development we recommend ngrok.
MIT