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.