search
LoginSignup
2

More than 3 years have passed since last update.

posted at

GolangでAPI使ってSMS送信

SMSとは

ショートメッセージサービスですね。
二段階認証や本人確認などで最近よく使われます。

package main

import (
    "net/http"
    "net/url"
    "log"
    "fmt"
)

func main(){
    value := url.Values{}
    value.Set("from","Nexmo")
    value.Add("text","Hello from Nexmo dayoneeee")
    value.Add("to",TO_NUMBER)
    value.Add("api_key",API_KEY)
    value.Add("api_secret",API_SECRET)
    resp, err := http.PostForm("https://rest.nexmo.com/sms/json",value)
    if err != nil{
        log.Fatal(err)
    }
    buffer := make([]byte,1024)
    respLen,_ := resp.Body.Read(buffer)
    body := string(buffer[:respLen])
    fmt.Println(body)
    fmt.Println(resp.Status)
    defer resp.Body.Close()
}

今回使ったAPIは特にエンコーディングする必要はなかったので
PostFormを使ってリクエストを作成しました。
API_KEYとFrom,Toが必須となっており、
URLのjsonをxmlなどに変えるとレスポンスで指定したものが返ってきます。

おしまい

curlを使うとこんな感じだよというサンプルもあるので分かりやすかった。
詳しくはここに書いてある。Nexmo

curl -X "POST" "https://rest.nexmo.com/sms/json" \
  -d "from=AcmeInc" \
  -d "text=A text message sent using the Nexmo SMS API" \
  -d "to=$TO_NUMBER" \
  -d "api_key=$NEXMO_API_KEY" \
  -d "api_secret=$NEXMO_API_SECRET"

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2