You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DiscordPHP创建Discord频道邀请链接无返回邀请码如何解决

问题原因

  • 缺少Invite类的命名空间导入,回调参数的类型声明触发PHP致命错误,导致回调代码未执行
  • 未添加Promise错误捕获逻辑,创建邀请请求被拒绝(如权限不足、参数非法)时无法感知报错
  • 未开启Discord开发者后台的Message Content Intent权限,导致message事件无法触发,邀请创建逻辑从未执行
  • 机器人没有对应频道的CREATE_INSTANT_INVITE(创建即时邀请)权限,接口请求直接失败

解决方法

  1. 补全Invite类的命名空间导入,在代码顶部添加对应use声明
  2. 给Promise添加错误捕获回调,打印报错信息排查问题
  3. 进入Discord开发者平台,在对应应用的「Bot」设置页开启Message Content Intent开关
  4. 给机器人在目标频道分配「创建即时邀请」权限

修正后的可运行代码如下:

<?php
include __DIR__.'/vendor/autoload.php';
use Discord\Discord;
use Discord\Parts\Invite\Invite;

$discord = new Discord([
    'token' => '替换为你的实际Bot令牌',
    'intents' => 32767, // 可根据实际需求缩小权限范围,必须包含消息相关intent
]);

$discord->on('ready', function ($discord) {
    echo "Bot is ready!", PHP_EOL;
    $discord->on('message', function ($message, $discord) {
        // 过滤机器人自身发送的消息,避免循环触发
        if ($message->author->bot) {
            return;
        }
        $channel = $message->channel;
        $channel->createInvite([
            'max_age' => 60,
            'max_uses' => 5,
        ])->done(function (Invite $invite) {
            echo "邀请创建成功,邀请码:".$invite->code.PHP_EOL;
            echo "完整邀请链接:https://discord.gg/".$invite->code.PHP_EOL;
        }, function ($exception) {
            echo "邀请创建失败,错误信息:".$exception->getMessage().PHP_EOL;
        });
    });
});

$discord->run();

内容的提问来源于stack exchange,提问作者The IRF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:15:06