Skip to content

Instantly share code, notes, and snippets.

@Xe
Created March 29, 2018 02:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Xe/723ba83114b69e11e8c4d42b82195f35 to your computer and use it in GitHub Desktop.
Save Xe/723ba83114b69e11e8c4d42b82195f35 to your computer and use it in GitHub Desktop.

How to Automate Discord Message Posting With Webhooks and Cron

Most Linux systems have cron installed to run programs at given intervals. An example usecase would be to install package updates every Monday at 9 am (keep the sysadmins awake!).

Discord lets us post things using webhooks. Combining this with cron lets us create automated message posting bots at arbitrary intervals.

The message posting script

Somewhere on disk, copy down the following script:

#!/bin/sh
# msgpost.sh
# change MESSAGE, WEBHOOK and USERNAME as makes sense
# This code is trivial, and not covered by any license or warranty.

# explode on errors
set -e

MESSAGE='haha memes are funny xD'
WEBHOOK=https://discordapp.com/api/webhooks/0892379892092/AFkljAoiuj098oKA_98kjlA85jds
USERNAME=KRONK

curl -X POST \
     -F "content=${MESSAGE}" \
     -F "username=${USERNAME}" \
     "${WEBHOOK}"

Test run it and get a message like this:

example discord message

How to automate it

To automate it, first open your crontab(5) file:

$ crontab -e

Then add a crontab entry as such:

# Post this funny message every hour, on the hour
0 * * * *  /path/to/msgpost.sh

# Also valid with some implementations of cron (non-standard)
@hourly    /path/to/msgpost.sh

Then save this with your editor and it will be loaded into the cron daemon.

To run multiple copies of this, create multiple copies of msgpost.sh

Have fun :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment