replyとdeferReply、updateとdeferUpdateの違い
Discord からinteractionCreateイベントが発行された場合、クライアントは3秒以内に応答することが期待されている。
Interaction tokens are valid for 15 minutes and can be used to send followup messages but you must send an initial response within 3 seconds of receiving the event. If the 3 second deadline is exceeded, the token will be invalidated.
しかし、3秒で応答が返せない可能性があることも現実にはあり得る。
その場合はdeferReply、deferUpdateを用いる
15分まで待ってくれるけど、進捗表示とかするべき…tig.icon
deferReply、deferUpdateを使用した場合結果はeditReplyを用いて送信する
それ以外の場合はreply、updateを用いることができる
https://gyazo.com/a18fc6ac7b3483f332938db0ec0c25b6
deferしたあと(editReply前)
https://gyazo.com/43505f9b7e0a33f5186e5071cf837050
過去の仕様との互換性の都合でDEFERRED_CHANNEL_MESSAGE_WITH_SOURCE(deferReply)を使用した場合followUpメソッドを用いることもできる
When using this endpoint directly after responding to an interaction with DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE, this endpoint will function as Edit Original Interaction Response for backwards compatibility. In this case, no new message will be created, and the loading message will be edited instead. The ephemeral flag will be ignored, and the value you provided in the initial defer response will be preserved, as an existing message's ephemeral state cannot be changed. This behavior is deprecated, and you should use the Edit Original Interaction Response endpoint in this case instead.
ref