白黒羊

Discord APIを使っているときに2,000文字制限に引っかかってしまったら

エラー

(node:41359) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body
content: Must be 2000 or fewer in length.
    at RequestHandler.execute (PATH_TO_PROJECT/node_modules/discord.js/src/rest/RequestHandler.js:170:25)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
(Use `node --trace-warnings ...` to show where the warning was created)

DiscordAPIError: Invalid Form Body content: Must be 2000 or fewer in length. ということで、Discord APIを通じて送るメッセージは2,000文字以下にしないと駄目なようです。

send メソッドの split Option を指定すれば良いようです。

私は discord.js を使っているので、javascriptのコードを下に示します。

Discord.js

コード

元のコード

await message.channel
        .send(`Hello, world! {very_long_text}`);

改良後のコード

await message.channel
        .send(`Hello, world! {very_long_text}`, { split: true });

これで長い文章も自動的に分割して流してくれるようになりました!