コマンドラインで色々試しやすいようにシェルスクリプトっぽくしてます
notify.go
//usr/bin/env go run $0 $@ ; exit
package main
import (
"flag"
"fmt"
"io/ioutil"
"log"
"net/http"
"net/url"
"strings"
)
func main() {
token := flag.String("token", "", "LINE notify token")
flag.Parse()
text := flag.Arg(0)
if *token == "" {
log.Fatal("not token")
}
if text == "" {
log.Fatal("not text")
}
data := url.Values{"message": {text}}
r, _ := http.NewRequest("POST", "https://notify-api.line.me/api/notify", strings.NewReader(data.Encode()))
r.Header.Set("Content-Type", "application/x-www-form-urlencoded")
r.Header.Set("Authorization", "Bearer "+*token)
resp, err := http.DefaultClient.Do(r)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", body)
}
使い方はnotify.go
とか言う名前で保存します。
$TOKEN
にはLINE Notifyのトークンをセットしておきます。
chmod +x notify.go
./notify.go -token $TOKEN hogehoge
もちろんbuildすることもできます。
go build -o notify notify.go
./notify -token $TOKEN hogehoge
GoでやるメリットとしてGOOSオプションでwindowsやlinux向けにもビルドできるので便利です。