team-reflex/discord-php

与语音和文本服务 Discord 交互的非官方 API。

v10.0.0-RC8 2024-08-05 23:14 UTC

README

Latest Stable Version Latest Unstable Version Total Downloads PHP Version Require

PHP Discorders

官方 Discord REST、网关和语音 API 的包装器。文档在此处提供,尽管目前有限,还有类参考。欢迎在上述 Discord 服务器中提问。

为了测试和稳定性,如果您能将我们的测试机器人添加到您的服务器,我们将非常感激。我们不会存储任何数据——机器人只是闲置并与其他人无交互,用于测试与大量公会的大规模稳定性。您可以在这里邀请机器人。

缓存接口(实验性)

警告 此分支包含实验性功能,请勿在生产环境中使用!有关如何设置的更多信息,请参阅维基页面

常见问题解答

  1. 我能否在 web 服务器(例如 Apache、nginx)上运行 DiscordPHP?
    • 不行,DiscordPHP 只能在 CLI 中运行。如果您想为您的机器人创建一个界面,您可以将 react/http 与您的机器人集成,并通过 CLI 运行。
  2. PHP 内存不足?
    • 尝试使用 ini_set('memory_limit', '-1'); 取消限制 PHP 内存。

入门指南

在开始使用此库之前,您必须了解 PHP 的工作原理,您需要了解事件循环和承诺的工作原理。这是开始前的基本要求。如果没有这些知识,您将只会遭受。

需求

推荐扩展

  • 其中一个 ext-uv(推荐)、ext-evext-event 以获得更快、更高效的事件循环。
  • 如果处理非拉丁字符,则需要 ext-mbstring

语音需求

Windows 和 SSL

不幸的是,PHP 在 Windows 上无法访问 Windows 证书存储。这是一个问题,因为 TLS 被使用,因此证书验证被应用(关闭此选项不是选项)。

您将通过脚本在经过一次循环后立即退出而没有任何错误来注意到此问题。

因此,使用此库的用户需要从 cURL 网站下载证书颁发机构提取
必须将 caextract 的路径设置在 php.ini 中的 openssl.cafile

安装 DiscordPHP

DiscordPHP 使用 Composer 安装。

  1. 运行 composer require team-reflex/discord-php。这将安装最新的稳定版本。
    • 如果您愿意,也可以通过运行 composer require team-reflex/discord-php dev-master 安装开发分支。
  2. 在主文件顶部包含 Composer 自动加载文件
    • include __DIR__.'/vendor/autoload.php';
  3. 创建一个机器人!

基本示例

<?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-至今。