夏休みの朝のラジオ体操よろしく、朝にGoで頭の準備体操をした。
Todoist APIを利用して、現在設定しているプロジェクトの一覧を取得するだけのスクリプト。
Todoist APIについてはこちらにも以前書いていた。
プロジェクト一覧を取得するスクリプトのサンプル
参照したドキュメントは以下。
https://developer.todoist.com/rest/v1/?shell#getting-started
package main import ( "flag" "fmt" "io/ioutil" "net/http" "os" ) func main() { flag.Parse() if len(flag.Args()) == 0 { fmt.Println("ERROR: API token must be specified.") os.Exit(1) } token := flag.Args()[0] url := "https://api.todoist.com/rest/v1/projects" req, _ := http.NewRequest("GET", url, nil) bearer := "Bearer " + token req.Header.Add("Authorization", bearer) client := new(http.Client) resp, err := client.Do(req) if err != nil { fmt.Println("ERROR: http request error.") os.Exit(1) } defer resp.Body.Close() byteArray, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("ERROR: fetch data read error.") os.Exit(1) } fmt.Println(string(byteArray)) }
実行は以下のように引数にAPIトークンをしている方法で行う。
go run main.go <取得しているAPIトークン>