19日に更新してた

アフィリエイトはないよ

【golang】LINE Notify で1000文字を超えるものを分割送信するようにしてみた。

あまり長いものを送信していなかったので気にしていなかったのですが、どうも一送信の制限が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)
	}

}
windows copilot で作った"【golang】LINE Notify で1000文字を超えるものを分割送信するようにしてみた。"の画像

*1:golang でアプリ化しているものに組み込んでいるので golang で。