Skip to main content
On a self-hosted PostQueen the Discord application is yours. Connecting a Discord channel adds your application’s bot to one server, and the bot posts every message, so PostQueen needs the application’s OAuth keys and the bot’s token.

Before you start

PostQueen checks the identify and guilds scopes when a server connects and refuses the connect if either is missing. The bot permissions are part of the install link, so you do not set them in the portal.

Create the app

1

Create the application

In the developer portal, choose New Application, enter a name, accept the terms and choose Create.
2

Set up the bot

Open the Bot page:
  • Upload an icon for the bot. The channel’s picture in PostQueen is the bot’s avatar, and without one the channel connects with no picture.
  • Choose Reset Token and copy the token. Discord shows it once.
  • Keep Public Bot on if people other than you will connect their servers. With it off, only the application’s owner can add the bot.
PostQueen does not use the gateway, so leave the privileged intents off.
3

Add the redirect URI

Open the OAuth2 page. Under Redirects, choose Add Redirect, enter the address and save:
The redirect URI is where the network sends the browser back after someone approves PostQueen. It is your FRONTEND_URL + /integrations/social/ + the network’s identifier, for example https://postqueen.example.com/integrations/social/pinterest.Most networks need exactly one URI, with no trailing slash. Two exceptions: TikTok Business needs the trailing slash (/integrations/social/tiktok-business/), and a Google web client that also serves Google Business Profile lists both /integrations/social/youtube and /integrations/social/gmb. Channel developer apps lists every network’s ending.
4

Copy the client ID and secret

On the same OAuth2 page, copy the Client ID, then choose Reset Secret and copy the client secret.

Set the variables

Add the three values to your environment:
The bot token lists each server’s channels and sends every post, so without it the channel picker stays empty and every post fails. Recreate the app container so it reads the new variables. A plain docker restart or docker compose restart keeps the old container and its old environment. In the folder that holds docker-compose.yaml, recreate only the postqueen service:
The database, Redis and Temporal keep running. Avoid docker compose down for a settings change: on a host that runs other Compose services in the same project, it stops them too. Then open PostQueen, go to Channels, choose Add Channel and pick this network. You are sent to its login to authorize PostQueen, and the channel appears in the Channels list once you accept.
The channel is in the Channels list with its avatar and name.
Add Channel does not check whether your variables are set. A missing or misspelled key shows up as a broken authorization page on the network’s side rather than a helpful message in PostQueen, so if the login page itself looks wrong, check the keys before anything else.
Discord’s consent screen asks which server to add the bot to. Only servers where your account has Manage Server are offered. Each post then picks a text or announcement channel of that server; forum channels are left out, because PostQueen posts plain messages and a forum only takes new threads.

App review

Discord needs no review to start. Once the bot is in 100 servers, Discord requires the application’s owner to verify their identity before the bot can join more. See Discord’s verification guide.

Troubleshooting

Discord returned a token without identify or guilds. Connect again and approve everything on the consent screen.
The address PostQueen sent is not listed under Redirects. It is exactly your FRONTEND_URL followed by /integrations/social/discord. Check the scheme, the port and that there is no trailing slash.
DISCORD_BOT_TOKEN_ID is missing or wrong, or the token was reset after you copied it. Copy a fresh token from the Bot page and recreate the container.
The channel hides itself from the bot’s role. In Discord, give the bot’s role View Channel, Send Messages and Attach Files on that channel. The same applies to “Bot lacks permission to send messages in this channel”.
Last modified on September 23, 2026