Discord Message
Pricing
Pay per usage
Go to Store
0
Discord Message
This actor sends a message to Discord automatically. It can be used separately, or as a notification tool at the end of other actors.
0.0 (0)
Pricing
Pay per usage
2
Monthly users
1
Last modified
2 years ago
.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
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
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
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})();
Pricing
Pricing model
Pay per usageThis Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage.