- Notifications
You must be signed in to change notification settings - Fork774
Basic Discord app with examples
License
discord/discord-example-app
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This project contains a basic rock-paper-scissors-style Discord app written in JavaScript, built for thegetting started guide.
Below is a basic overview of the project structure:
├── examples -> short, feature-specific sample apps│ ├── app.js -> finished app.js code│ ├── button.js│ ├── command.js│ ├── modal.js│ ├── selectMenu.js├── .env.sample -> sample .env file├── app.js -> main entrypoint for app├── commands.js -> slash command payloads + helpers├── game.js -> logic specific to RPS├── utils.js -> utility functions and enums├── package.json├── README.md└── .gitignoreBefore you start, you'll need to installNodeJS andcreate a Discord app with the proper permissions:
applications.commandsbot(with Send Messages enabled)
Configuring the app is covered in detail in thegetting started guide.
First clone the project:
git clone https://github.com/discord/discord-example-app.gitThen navigate to its directory and install dependencies:
cd discord-example-appnpm installFetch the credentials from your app's settings and add them to a.env file (see.env.sample for an example). You'll need your app ID (APP_ID), bot token (DISCORD_TOKEN), and public key (PUBLIC_KEY).
Fetching credentials is covered in detail in thegetting started guide.
🔑 Environment variables can be added to the
.envfile in Glitch or when developing locally, and in the Secrets tab in Replit (the lock icon on the left).
The commands for the example app are set up incommands.js. All of the commands in theALL_COMMANDS array at the bottom ofcommands.js will be installed when you run theregister command configured inpackage.json:
npm run registerAfter your credentials are added, go ahead and run the app:
node app.js⚙️ A packagelike
nodemon, which watches for local changes and restarts your app, may be helpful while locally developing.
If you aren't following thegetting started guide, you can move the contents ofexamples/app.js (the finishedapp.js file) to the top-levelapp.js.
The project needs a public endpoint where Discord can send requests. To develop and test locally, you can use something likengrok to tunnel HTTP traffic.
Install ngrok if you haven't already, then start listening on port3000:
ngrok http 3000You should see your connection open:
Tunnel Status onlineVersion 2.0/2.0Web Interface http://127.0.0.1:4040Forwarding https://1234-someurl.ngrok.io -> localhost:3000Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00Copy the forwarding address that starts withhttps, in this casehttps://1234-someurl.ngrok.io, then go to yourapp's settings.
On theGeneral Information tab, there will be anInteractions Endpoint URL. Paste your ngrok address there, and append/interactions to it (https://1234-someurl.ngrok.io/interactions in the example).
ClickSave Changes, and your app should be ready to run 🚀
- Readthe documentation for in-depth information about API features.
- Browse the
examples/folder in this project for smaller, feature-specific code examples - Join theDiscord Developers server to ask questions about the API, attend events hosted by the Discord API team, and interact with other devs.
- Check outcommunity resources for language-specific tools maintained by community members.
About
Basic Discord app with examples
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
Contributors14
Uh oh!
There was an error while loading.Please reload this page.
