I am trying this official discord bot example https://github.com/discord/discord-example-app. While running the code and setting up the interaction URL in discord developer portal. I am getting "Bad request signature" error in NodeJS.
The bot verification code is as per below
app.js
// Parse request body and verifies incoming requests using discord-interactions package
app.use(express.json({verify: VerifyDiscordRequest(process.env.PUBLIC_KEY) }));
utils.js
export function VerifyDiscordRequest(clientKey) {
return function (req, res, buf, encoding) {
const signature = req.get('X-Signature-Ed25519');
const timestamp = req.get('X-Signature-Timestamp');
const isValidRequest = verifyKey(buf, signature, timestamp, clientKey);
if (!isValidRequest) {
res.status(401).send('Bad request signature');
throw new Error('Bad request signature');
}
};
}
I am assuming express body-parser is causing some issues but not completely sure. Reference - https://github.com/discord/discord-example-app

To anyone, who's trying out the discord bot example and is getting thrown "Bad request signature" error like I am, make sure your "Interactions endpoint URL" string (in your bot's General Information page) ends with
/interactionsjust like the following example URL:https://mybotserverurl.com/interactions