Module discord

ballerinax/discord Ballerina library

1.0.0

Overview

Discord is a popular communication platform designed for creating communities and facilitating real-time messaging, voice, and video interactions over the internet.

The Ballerina Discord connector offers APIs to connect and interact with the Discord REST API v10.

Setup guide

Follow these steps to create a Discord developer account.

Step 1: Login to Discord developer page

  1. Visit Discord developer portal by logging into your Discord account.

    Discord Dev Page
  2. If you do not have a Discord account already, create a new discord account by clicking on the Register hyperlink below the Log In button when opening the Discord developer page.

    Create Discord Account
  3. Complete the account creation process by including the relevant information in the given fields.

Step 2: Make a new Discord application

  1. Once in the Discord developer portal is open, click on the New Application button as displayed above to start the process.

    Make New Application

Step 3: Name the Discord Application

  1. Proceed by giving the Discord Application a name and click on the terms of service.

    Name and Create the App
  2. Finally complete the naming process by clicking on the next button.

Step 4: Obtain the Client ID and Client Secret

  1. Under the OAuth2 section found on the left-sided list, locate the Client's Information as shown on the screen. To implement the functionalities provided by Discord's API, you will need the Client ID and Client Secret.

    Obtain Client ID and Secret

Quickstart

To use the discord connector in your Ballerina application, modify the .bal file as follows:

Step 1: Import the module

Import the discord module.

Copy
import ballerinax/discord;

Step 2: Instantiate a new connector

Create a discord:ConnectionConfig with the obtained OAuth2.0 Client Credentials and initialize the connector with it.

Apps must receive approval from users installing them to perform actions within Discord. To enable these functions, specific scopes must be defined. These scopes are outlined in the OAuth2 Scopes documentation.

Copy
configurable string clientId = ?;
configurable string clientSecret = ?;
configurable string[] scopes = ?;

discord:Client discord = check new({
    auth: {
            clientId,
            clientSecret,
            scopes
        }
});

Step 3: Invoke the connector operation

Now, utilize the available connector operations.

Return linked third-party accounts of the user

Copy
public function main() returns error? {
    ConnectedAccountResponse[] connectedAccounts = check discord->/users/\@me/connections();
}

Step 4: Run the Ballerina application

Copy
bal run

Examples

The Discord connector provides practical examples illustrating usage in various scenarios. Explore these examples, covering the following use cases:

  1. Automated Event Reminders - This use case illustrates how the Discord API can be leveraged to create a scheduled event in a Discord server and automate daily reminders about this event across all channels within the server.
  2. Automated Role Assignment Based on Reactions - This use case illustrates the utilization of the Discord API to assign roles to members based on their interests, enabling them to gain roles by reacting to designated messages.