Discord Message avatar
Discord Message
Try for free

No credit card required

View all Actors
Discord Message

Discord Message

lemoussel/discord-message
Try for free

No credit card required

This actor sends a message to Discord automatically. It can be used separately, or as a notification tool at the end of other actors.

.dockerignore

1# configurations
2.idea
3.vscode
4.dccache
5package-lock.json
6
7# crawlee and apify storage folders
8apify_storage
9crawlee_storage
10storage
11
12# installed files
13node_modules
14
15# git folder
16.git

.gitignore

1node_modules
2.vscode
3.dccache
4package-lock.json
5apify_storage
6crawlee_storage
7storage

package.json

1{
2	"name": "discord-message",
3	"version": "0.0.1",
4	"type": "module",
5	"description": "This is an example of an Apify actor.",
6	"dependencies": {
7		"apify": "^3.0.0",
8		"discord.js": "^14.7.1"
9	},
10	"scripts": {
11		"start": "node src/main.js",
12		"test": "echo \"Error: oops, the actor has no tests yet, sad!\" && exit 1"
13	},
14	"author": "It's not you it's me",
15	"license": "ISC"
16}

.actor/actor.json

1{
2	"actorSpecification": 1,
3	"name": "discord-message",
4	"title": "Discord Message",
5	"description": "This actor send message to Discord automatically.",
6	"version": "1.0",
7    "buildTag": "latest",
8	"input": "./input-schema.json",
9	"readme": "./README.md",
10	"dockefile": "./Dockerfile"
11}

.actor/Dockerfile

1# Specify the base Docker image. You can read more about
2# the available images at https://sdk.apify.com/docs/guides/docker-images
3# You can also use any other image from Docker Hub.
4FROM apify/actor-node:16
5
6# Copy just package.json and package-lock.json
7# to speed up the build using Docker layer cache.
8COPY package*.json ./
9
10# Install NPM packages, skip optional and development dependencies to
11# keep the image small. Avoid logging too much and print the dependency
12# tree for debugging
13RUN npm --quiet set progress=false \
14    && npm install --omit=dev --omit=optional \
15    && echo "Installed NPM packages:" \
16    && (npm list --omit=dev --all || true) \
17    && echo "Node.js version:" \
18    && node --version \
19    && echo "NPM version:" \
20    && npm --version \
21    && rm -r ~/.npm
22
23# Next, copy the remaining files and directories with the source code.
24# Since we do this after NPM install, quick build will be really fast
25# for most source file changes.
26COPY . ./
27
28
29# Run the image.
30CMD npm start --silent

.actor/input-schema.json

1{
2  "title": "Send message to a Discord Webhook",
3  "type": "object",
4  "schemaVersion": 1,
5  "properties": {
6    "webhookUrl": {
7      "title": "Url",
8      "type": "string",
9      "description": "Discord Webhook Url in a format https://discord.com/api/webhooks/",
10      "isSecret": true,
11      "editor": "textfield"
12    },
13    "text": {
14        "title": "Message",
15        "type": "string",
16        "description": "Message that will be sent to Discord",
17        "prefill": "Hello from 'Discord-Message' Apify actor!",
18        "example": "Hello from 'Discord-Message' Apify actor!",
19        "editor": "textfield"
20      }
21  },
22  "required": ["webhookUrl", "text"]
23}

.actor/README.md

1# Discord message
2
3This actor sends message to [Discord](https://discord.com/) automatically. It can be used separately, or as a notificaton tool at the end of other actors.
4
5## Discord Webhook setup
6
7It is necessary to create a webhooks through the Discord server settings.You can create webhooks directly through the Discord client. Go to Server Settings, and you will see an `Integrations` tab.
8
9![Create discord webhook](https://discordjs.guide/assets/creating-webhooks-1.9d51faa6.png)
10
11If you already have created a webhook, the webhooks tab will look like this; you will need to click the `View Webhooks` button.
12
13![View discord webhook](https://discordjs.guide/assets/creating-webhooks-2.24d92370.png)
14
15Once you are there, click on the `Create Webhook / New Webhook` button; this will create a webhook. From here, you can edit the channel, the name, and the avatar. Copy the link, the first part is the id, and the second is the token.
16
17![View discord webhook](https://discordjs.guide/assets/creating-webhooks-3.1fddb27b.png)
18
19Copy your webhook URL and save it for later.
20
21Ref: [Discord webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks)
22
23## Input
24
25The following table shows specification of the actor INPUT fields as defined by its input schema.
26
27Field | Type | Description
28---| ---| ---|
29Url| *String*| (required) Discord Webhook URL
30Message| *String*| (required) Message that will be sent to Discord (i.e.  "Hello from 'Discord-Message' Apify actor!" ).
31
32## How to run
33
34To run the actor, you'll need an [Apify account](https://my.apify.com/). Simply create a new task for the actor by clicking the green button above, modify the actor input configuration, click Run and get your results.
35
36## API
37
38To run the actor from your code, send a HTTP POST request to the following API endpoint: **TODO**
39
40## CU usage
41
42Approximately 0.001 CU per run.
43
44## Documentation reference
45
46- [Apify Actor documentation](https://docs.apify.com/actor)
47- [Apify CLI](https://docs.apify.com/cli)

src/main.js

1// https://sdk.apify.com/
2import { Actor, log } from 'apify';
3// https://discord.js.org/
4import { WebhookClient } from 'discord.js'
5
6(async () => {
7    await Actor.init()
8
9    const input = await Actor.getInput();
10
11    const webhookClient = new WebhookClient({'url': input.webhookUrl});
12    // https://discord.com/developers/docs/resources/webhook#execute-webhook
13    await webhookClient
14        .send({'content': input.text})
15        .then((result) => {
16            const resultDateFormat = result.timestamp.
17                replace(/T/, ' ').  // replace T with a space
18                replace(/\..+/, '') // delete the dot and everything after
19            log.info(`${resultDateFormat} Discord message sent successfully`);
20        })
21        .catch((error) => {
22            log.error(`Failed to send Slack message: ${error.code}`);
23            throw error;
24        });
25
26    await Actor.exit();
27})();
Developer
Maintained by Community
Actor metrics
  • 4 monthly users
  • 1 star
  • Created in Dec 2022
  • Modified over 1 year ago
Categories