SlackのEventAPIのリトライコールを防ぐ - golang

2020-10-23

エラーレスポンスを返す時でもリトライさせたくない場合は、ヘッダにX-Slack-No-Retryを指定する。

func handler(w http.ResponseWriter, r *http.Request) {
    // Process something...

    // Set "X-Slack-No-Retry: 1" if prevent retry.
    w.Header().Set("X-Slack-No-Retry", "1")

    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(http.StatusBadRequest)
    w.Write([]byte(""))
}

Reference

https://api.slack.com/events-api#the-events-api__field-guide__error-handling__graceful-retries__turning-retries-off