あまり長いものを送信していなかったので気にしていなかったのですが、どうも一送信の制限が1000文字らしいので対応してみました。*1
func line(message string) { accessToken := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" message_limit := 1_000 URL := "https://notify-api.line.me/api/notify" u, _ := url.ParseRequestURI(URL) c := &http.Client{} rune_message := []rune(message) repeat := len(rune_message)/message_limit + 1 for i := 0; i < repeat; i++ { form := url.Values{} end := len(rune_message) if i+1 != repeat { end = message_limit * (i + 1) } rune_sliced_message := rune_message[message_limit*i : end] form.Add("message", string(rune_sliced_message)) body := strings.NewReader(form.Encode()) req, _ := http.NewRequest("POST", u.String(), body) req.Header.Set("Content-Type", "application/x-www-form-urlencoded") req.Header.Set("Authorization", "Bearer "+accessToken) c.Do(req) } }