rpurinton / discordoauth2
A Discord OAuth2 Library for PHP
Installs: 36
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/rpurinton/discordoauth2
Requires
- rpurinton/config: ^1.0.25
- rpurinton/https: ^1.0.26
README
Introduction
The RPurinton Discord OAuth2 Library is a PHP library designed to facilitate OAuth2 authentication with Discord. It provides functionality for obtaining and refreshing access tokens using Discord's API.
Installation
Composer Installation
To install the library, use Composer:
composer require rpurinton/discordoauth2
Configuration Setup
- Create a configdirectory at the same level as thevendordirectory.
- Place the DiscordOAuth2.jsonfile with your credentials in theconfigdirectory.- Note: The access_token,refresh_token, andexpires_atwill be added later by the library.
 
- Note: The 
Discord Developer Portal Setup
- Create a Discord application in the Discord Developer Portal.
- Enable OAuth2 and set up the necessary redirect URIs.
- Obtain the client ID and client secret.
- Download the credentials JSON file and place it in the configdirectory asDiscordOAuth2.json.
Usage
Initialization
- Create a new instance of the DiscordOAuth2class.
- Run the ->init()method to start the OAuth2 authentication flow.
- This method will redirect to Discord for authentication and back to your script with the authorization code.
- The init()method is crucial for the first-time setup to obtain theaccess_tokenandrefresh_token.
- These tokens are stored in the DiscordOAuth2.jsonconfiguration file.
- Once the tokens are obtained, the init()method is not required again unless the user deauthorizes the app from their Discord account.
API Methods
- init(): Initiates the OAuth2 flow to obtain access and refresh tokens.
- refresh_token(): Refreshes the access token using the refresh token.
Examples
<?php require 'vendor/autoload.php'; use RPurinton\DiscordOAuth2\DiscordOAuth2; $discord = new DiscordOAuth2(); $discord->init(); // Only needed for the first-time setup
Troubleshooting
- Ensure that the DiscordOAuth2.jsonfile is correctly configured and accessible.
- Verify that the Discord application is set up with the correct credentials and permissions.
- If you encounter issues with token expiration, ensure the refresh_tokenis valid and theinit()method was successfully executed initially.
License
This library is licensed under the MIT License. See the LICENSE file for more information.