team-reflex / discord-php
与语音和文本服务 Discord 交互的非官方 API。
Requires
- php: ^8.0
- ext-json: *
- ext-zlib: *
- discord-php/http: ^10.1.7
- discord/interactions: ^2.2
- monolog/monolog: ^2.1.1 || ^3.0
- nesbot/carbon: ^2.38 || ^3.0
- psr/simple-cache: ^1.0 || ^2.0 || ^3.0
- ratchet/pawl: ^0.4.1
- react/async: ^4.0 || ^3.0
- react/cache: ^0.5 || ^0.6 || ^1.0
- react/child-process: ^0.6.3
- react/datagram: ^1.8
- react/event-loop: ^1.2
- react/promise: ^2.2
- symfony/options-resolver: ^5.1.11 || ^6.0 || ^7.0
- trafficcophp/bytebuffer: ^0.3
Requires (Dev)
- davidcole1340/reactsh: dev-master
- friendsofphp/php-cs-fixer: ^3
- phpunit/phpunit: ^9.4.4
- symfony/cache: ^5.4
- symfony/var-dumper: *
- wyrihaximus/react-cache-redis: ^3.0 || >=4.0 <4.4
Suggests
- ext-ev: For a faster, and more performant loop.
- ext-event: For a faster, and more performant loop.
- ext-fileinfo: For function mime_content_type().
- ext-gmp: For 64 bit calculations on x86 (32 bit) PHP.
- ext-mbstring: For accurate calculations of string length when handling non-english characters.
- ext-uv: For a faster, and more performant loop. Preferred.
- dev-master
- v10.0.0-RC8
- v10.0.0-RC7
- v10.0.0-RC6
- v10.0.0-RC5
- v10.0.0-RC4
- v10.0.0-RC3
- v10.0.0-RC2
- v10.0.0-RC1
- v7.x-dev
- v7.3.5
- v7.3.4
- v7.3.3
- v7.3.2
- v7.3.1
- v7.3.0
- v7.2.6
- v7.2.5
- v7.2.4
- v7.2.3
- v7.2.2
- v7.2.1
- v7.2.0
- v7.1.4
- v7.1.3
- v7.1.2
- v7.1.1
- v7.1.0
- v7.0.9
- v7.0.8
- v7.0.7
- v7.0.6
- v7.0.5
- v7.0.4
- v7.0.3
- v7.0.2
- v7.0.1
- v7.0.0
- v7.0.0-RC4
- v7.0.0-RC3
- v7.0.0-RC2
- v7.0.0-RC1
- v6.x-dev
- v6.0.3
- v6.0.2
- v6.0.1
- v6.0.0
- v6.0.0-RC4
- v5.2.0-RC3
- v5.2.0-RC2
- v5.2.0-RC1
- v5.1.x-dev
- v5.1.3
- v5.1.2
- v5.1.1
- v5.1.0
- v5.0.12
- v5.0.11
- v5.0.10
- v5.0.3
- v5.0.2
- v5.0.1
- v5.0.0
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v3.2.4
- v3.2.3
- v3.2.2
- 3.2.1
- v3.2.0
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.1
- v2.0.0
- v1.0.0
- dev-Application-Emojis
- dev-valzargaming-polls
- dev-add/remove-role-enhancement
- dev-revert-1204-pruning-permission
- dev-pruning-permission
- dev-release-v10-notes
- dev-psr16-void-cache
- dev-subscriptions
- dev-promise-v3
- dev-valzargaming-patch-1
- dev-key2peace-patch-1
- dev-patch-docs
- dev-develop
This package is auto-updated.
Last update: 2024-09-23 18:18:08 UTC
README
官方 Discord REST、网关和语音 API 的包装器。文档在此处提供,尽管目前有限,还有类参考。欢迎在上述 Discord 服务器中提问。
为了测试和稳定性,如果您能将我们的测试机器人添加到您的服务器,我们将非常感激。我们不会存储任何数据——机器人只是闲置并与其他人无交互,用于测试与大量公会的大规模稳定性。您可以在这里邀请机器人。
缓存接口(实验性)
警告 此分支包含实验性功能,请勿在生产环境中使用!有关如何设置的更多信息,请参阅维基页面。
常见问题解答
- 我能否在 web 服务器(例如 Apache、nginx)上运行 DiscordPHP?
- 不行,DiscordPHP 只能在 CLI 中运行。如果您想为您的机器人创建一个界面,您可以将 react/http 与您的机器人集成,并通过 CLI 运行。
- PHP 内存不足?
- 尝试使用
ini_set('memory_limit', '-1');
取消限制 PHP 内存。
- 尝试使用
入门指南
在开始使用此库之前,您必须了解 PHP 的工作原理,您需要了解事件循环和承诺的工作原理。这是开始前的基本要求。如果没有这些知识,您将只会遭受。
需求
推荐扩展
- 其中一个
ext-uv
(推荐)、ext-ev
或ext-event
以获得更快、更高效的事件循环。 - 如果处理非拉丁字符,则需要
ext-mbstring
。
语音需求
- 64 位 PHP
ext-sodium
- FFmpeg
Windows 和 SSL
不幸的是,PHP 在 Windows 上无法访问 Windows 证书存储。这是一个问题,因为 TLS 被使用,因此证书验证被应用(关闭此选项不是选项)。
您将通过脚本在经过一次循环后立即退出而没有任何错误来注意到此问题。
因此,使用此库的用户需要从 cURL 网站下载证书颁发机构提取。
必须将 caextract 的路径设置在 php.ini
中的 openssl.cafile
。
安装 DiscordPHP
DiscordPHP 使用 Composer 安装。
- 运行
composer require team-reflex/discord-php
。这将安装最新的稳定版本。- 如果您愿意,也可以通过运行
composer require team-reflex/discord-php dev-master
安装开发分支。
- 如果您愿意,也可以通过运行
- 在主文件顶部包含 Composer 自动加载文件
include __DIR__.'/vendor/autoload.php';
- 创建一个机器人!
基本示例
<?php include __DIR__.'/vendor/autoload.php'; use Discord\Discord; use Discord\Parts\Channel\Message; use Discord\WebSockets\Intents; use Discord\WebSockets\Event; $discord = new Discord([ 'token' => 'bot-token', 'intents' => Intents::getDefaultIntents() // | Intents::MESSAGE_CONTENT, // Note: MESSAGE_CONTENT is privileged, see https://dis.gd/mcfaq ]); $discord->on('ready', function (Discord $discord) { echo "Bot is ready!", PHP_EOL; // Listen for messages. $discord->on(Event::MESSAGE_CREATE, function (Message $message, Discord $discord) { echo "{$message->author->username}: {$message->content}", PHP_EOL; // Note: MESSAGE_CONTENT intent must be enabled to get the content if the bot is not mentioned/DMed. }); }); $discord->run();
更多示例请参阅 示例文件夹。
文档
最新版本的文档可以在 这里 找到。社区贡献的教程可以在 wiki 上找到。
贡献
我们欢迎贡献。但是,请确保您遵循我们的编码标准(PSR-4 自动加载和自定义样式)。请在提交拉取请求之前运行 php-cs-fixer,运行 composer run-script cs
。
许可证
MIT 许可证,© David Cole 及其他贡献者 2016-至今。