Code 1 is for sending an Embed message on Discord, and the second one is for sending a file on Discord.
Code 1
import { axios } from "@pipedream/platform"
export default defineComponent({
name: "Send Embed Message",
description: "Send message to discord",
key: "discord_embed",
version: "0.0.7",
type: "action",
props: {
discord_bot: {
type: "app",
app: "discord_bot",
},
id_channel: {
type: "string",
label: "ID Channel",
default: "{{steps.data_processing_discord.ChannelID}}",
},
embed: {
type: "string",
label: "Embed message",
default: "{{steps.generate_embed_discord.$return_value.embed}}",
}
},
async run({steps, $}) {
return await axios($, {
method: 'POST',
url: `https://discord.com/api/channels/${this.id_channel}/messages`,
headers: {
"Authorization": `Bot ${this.discord_bot.$auth.bot_token}`,
},
data: {
embeds: [ this.embed ]
}
})
},
})
Code 2
import { axios } from "@pipedream/platform";
import fs from "fs";
import FormData from "form-data";
export default defineComponent({
props: {
discord_bot: {
type: "app",
app: "discord_bot",
},
id_channel: {
type: "string",
label: "Channel ID",
default: "{{steps.data_processing_discord.ChannelID}}",
},
messageText: {
type: "string",
label: "Message Text",
default: " ",
},
filePath: {
type: "string",
label: "File Path",
default: "{{steps.puppeteer_screenshot.PathFL}}",
},
embed: {
type: "string",
label: "Embed message",
default: "{{steps.generate_embed_discord.$return_value.embed}}",
}
},
async run({ steps, $ }) {
const formData = new FormData();
formData.append("file", fs.createReadStream(this.filePath));
const response = await axios($, {
method: "POST",
url: `https://discord.com/api/channels/${this.id_channel}/messages`,
headers: {
Authorization: `Bot ${this.discord_bot.$auth.bot_token}`,
...formData.getHeaders(),
},
data: {
embeds: [ this.embed ],
}
});
console.log("Message sent successfully:", response);
},
});