You have your website, and you have a url. If you want to join, here is the link https://discord.gg/uKA6t2m I won't always be online but the chat will be open. client.login({clientId: creds.clientId, clientSecret: creds.clientSecret, scopes:["rpc.api", "rpc", "rpc.notifications.read"]}); Maybe I'm misunderstanding how RPC is allowed to be used, but I think that I should be able to subscribe to notification events with the "NOTIFICATION_CREATE" event. The content-type for the token url must be application/x-www-form-urlencoded. I always thought the backstory of discord was fascinating—in short, a failing game development studio pivoted into building a platform that would foster the social atmosphere of gamers. Users communicate with voice calls, video calls, text messaging, media and files in private chats or as part of communities called "servers. So... why isn't it working? First, create a file named index.js which will be used to start the server. A list of all scopes can be found here. The unthinkable has happened! OAuth2's protocols provide a state parameter which is supported by Discord. You can use node-fetch to make requests to Discord; you can install it with npm i node-fetch. The author of this topic has marked a post as the answer to their question. OAuth2 enables application developers to build applications that utilize authentication and data from the Discord API. There are a few reasons your server link may be 'Invalid'. You can start your server with node index.js. Now you have to exchange this code with Discord for an access token. Require node-fetch and make your request. and I get this. The YouTube channel "I love languages! scope: The scopes requested in your authorization url, can be either a space-delimited string of scopes, or an array of strings containing scopes. The Discord permission system is based on roles that you assign to your members. ← Whether users were completing daily quests in World of Warcraft, or playing a rogue-like to kill time, now they could do so while still interacting with their server. What you did in the quick example was go through the implicit grant flow, which passed the access token straight to the user's browser. Getting Started. This means the link with the scope guilds.join will be on a website that you own and once the user either grants and denies this, the grant page will redirect the client back to the website. Most of the time, OAuth2 is used in websites to get information about its users from an external service. !ghelp - shows the available commands!gcreate - creates a giveaway (interactive setup)!gstart