GithubHelp home page GithubHelp logo

sofiane-soufi / discordphp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from discord-php/discordphp

0.0 1.0 0.0 28.17 MB

An API to interact with the popular messaging app Discord

License: MIT License

PHP 100.00%

discordphp's Introduction

DiscordPHP

PHP Discorders

A wrapper for the official Discord REST, gateway and voice APIs. Documentation is available here, albeit limited at the moment, as well as a class reference. Feel free to ask questions in the Discord server above.

For testing and stability it would be greatly appreciated if you were able to add our test bot to your server. We don't store any data - the bot simply idles and does not interact with anyone and is used to test stability with large numbers of guilds. You can invite the bot here.

This library does not handle slash commands. See DiscordPHP-Slash for a library to handle these interactions.

Before you start

Before you start using this Library, you need to know how PHP works, you need to know the language and you need to know how Event Loops and Promises work. This is a fundamental requirement before you start. Without this knowledge, you will only suffer.

FAQ

  1. Can I run DiscordPHP on a webserver (e.g. Apache, nginx)?
    • No, DiscordPHP will only run in CLI. If you want to have an interface for your bot you can integrate react/http with your bot and run it through CLI.
  2. PHP is running out of memory?
    • Try increase your memory limit using ini_set('memory_limit', '-1');.

Getting Started

Requirements

  • PHP 7.4
    • Versions as early as PHP 7.3 may work but no support will be provided in the case you encounter problems.
    • We recommend PHP 8.0 as it will be the most stable and most performant.
  • Composer
  • ext-json
  • ext-zlib

Windows and SSL

Unfortunately PHP on Windows does not have access to the Windows Certificate Store. This is an issue because TLS gets used and as such certificate verification gets applied (turning this off is not an option).

You will notice this issue by your script exiting immediately after one loop turn without any errors. Unfortunately there is for some reason no error or exception.

As such users of this library need to download a Certificate Authority extract from the cURL website.
The path to the caextract must be set in the php.ini for openssl.cafile.

Recommended Extensions

  • The latest PHP version.
  • One of ext-uv (preferred), ext-libev or evt-event for a faster, and more performant event loop.
  • ext-mbstring if handling non-english characters.

Voice Requirements

  • 64-bit Linux or Darwin based OS. Voice does not run on Windows.
  • ext-sodium
  • FFmpeg

Installing DiscordPHP

DiscordPHP is installed using Composer.

  1. Run composer require team-reflex/discord-php. This will install the lastest release.
    • If you would like, you can also install the development branch by running composer require team-reflex/discord-php dev-master.
  2. Include the Composer autoload file at the top of your main file:
    • include __DIR__.'/vendor/autoload.php';
  3. Make a bot!

Basic Example

<?php

include __DIR__.'/vendor/autoload.php';

use Discord\Discord;

$discord = new Discord([
	'token' => 'bot-token',
]);

$discord->on('ready', function ($discord) {
	echo "Bot is ready!", PHP_EOL;

	// Listen for messages.
	$discord->on('message', function ($message, $discord) {
		echo "{$message->author->username}: {$message->content}",PHP_EOL;
	});
});

$discord->run();

Documentation

Documentation can be found here. Raw documentation can be found in-line in the code and on the DiscordPHP Class Reference.

Contributing

We are open to contributions. However, please make sure you follow our coding standards (PSR-4 autoloading and custom styling). Please run php-cs-fixer before opening a pull request by running composer run-script cs.

License

MIT License, © David Cole and other contributers 2016-present.

discordphp's People

Contributors

davidcole1340 avatar key2peace avatar valzargaming avatar oliverschloebe avatar cryptiklemur avatar jaxkdev avatar slushpuppy avatar hemberger avatar ravisdo avatar danielholmes avatar punyflash avatar mvaessen avatar finalgamer avatar dependabot[bot] avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.