A little OAuth2 Wrapper for Discord.
Updated by ASL STUDIO
- Generation of Authorization URI
- Code-Exchange and getting the access and refresh token
- Revocation of Access-Token
- Refreshing of Access-Token with Refresh-Token
- Get guilds / user / connections information of user
<dependencies>
<dependency>
<groupId>ru.aslcraft.bell.oauth.discord</groupId>
<artifactId>OAuth2Discord</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
implementation 'ru.aslcraft.bell.oauth.discord:OAuth2Discord:1.0'
- Instantiate the
OAuthBuilder
like this:
import ru.aslcraft.bell.oauth.discord.main.OAuthBuilder;
OAuthBuilder builder = new OAuthBuilder("clientID", "clientSecret")
.setScopes(new String[]{"connections", "guilds", "email"})
.setRedirectURI("RedirectURL");
- Get the Authorization URL:
import ru.aslcraft.bell.oauth.discord.main.OAuthBuilder;
String authURL = builder.getAuthorizationUrl(null);
- Exchange the Code you get from the redirect (as a GET parameter):
import ru.aslcraft.bell.oauth.discord.main.OAuthBuilder;
import ru.aslcraft.bell.oauth.discord.main.Response;
Response response = builder.exchange(code);
if (response == Response.ERROR) {
// AN ERROR HAPPENED WHILE EXCHANGING THE CODE
} else {
// EVERYTHING WORKED AS EXPECTED
}
- Get User-Information (only available with scopes
email
oridentify
):
import ru.aslcraft.bell.oauth.discord.main.OAuthBuilder;
import ru.aslcraft.bell.oauth.discord.domain.User;
User user = builder.getUser();
- Get Guilds-Information (only available with scope
guilds
):
import ru.aslcraft.bell.oauth.discord.main.OAuthBuilder;
import ru.aslcraft.bell.oauth.discord.domain.Guild;
import java.util.List;
List<Guild> guilds = builder.getGuilds();
- Get Connections-Information (only available with scope
connections
):
import ru.aslcraft.bell.oauth.discord.main.OAuthBuilder;
import ru.aslcraft.bell.oauth.discord.domain.Connection;
import java.util.List;
List<Connection> connections = builder.getConnections();
- Refresh the access-token:
import ru.aslcraft.bell.oauth.discord.main.OAuthBuilder;
import ru.aslcraft.bell.oauth.discord.main.Response;
Response response = builder.refresh();
if (response == Response.ERROR) {
// AN ERROR HAPPENED WHILE EXCHANGING THE CODE
} else {
// EVERYTHING WORKED AS EXPECTED
}
- Revoke the access-token:
import ru.aslcraft.bell.oauth.discord.main.OAuthBuilder;
import ru.aslcraft.bell.oauth.discord.main.Response;
Response response = builder.revoke();
if (response == Response.ERROR) {
// AN ERROR HAPPENED WHILE EXCHANGING THE CODE
} else {
// EVERYTHING WORKED AS EXPECTED
}