Discord API / Restcord : 创建私人频道
Posted
技术标签:
【中文标题】Discord API / Restcord : 创建私人频道【英文标题】:Discord API / Restcord : Create private channel 【发布时间】:2020-02-05 05:22:38 【问题描述】:我正在尝试使用 Restcord 在 Discord 上创建私人频道,这是一个非常紧密地映射到 Discord API 的 php 库。
目前,我已成功创建语音频道,但服务器上的所有用户都可以查看和加入频道。如何使频道仅在受邀时可用?
我目前的测试代码是:
$discord = new \RestCord\DiscordClient(['token' => config('services.discord.bot_token')]);
$channel = $discord->guild->createGuildChannel([
'guild.id' => config('services.discord.guild_id'),
'name' => 'lobby_' . uniqid(),
'type' => 2, // Voice
'permission_overwrites' => [
],
]);
$invitation = $discord->channel->createChannelInvite([
'channel.id' => $channel->id,
]);
return "https://discordapp.com/invite/$invitation->code";
在此先感谢,非常感谢任何帮助,无论是使用 Restcord 还是直接使用 API。
【问题讨论】:
【参考方案1】:您需要使用permission_overwrites
字段。此字段接受 overwrite object 类型的数组。
例子:
$discord = new \RestCord\DiscordClient(['token' => <token>]);
$channel = $discord->guild->createGuildChannel([
'guild.id' => config(<your guild ID>),
'name' => '<channel name>',
'type' => 2, // Voice
'permission_overwrites' => [
'id' => <role OR user id>,
'type' => 'role' (if id is role) OR 'user' (if id is single user),
'allow' => <permission ID for allowed permissions>,
'deny' => <permissions ID for denied permissions>
]
]);
请注意,如果您将“允许”和“拒绝”保留为 0(默认值),则 id 为 'id' 的角色/用户将拥有与在服务器范围内定义的权限相同的权限。要获取特定权限集的权限 ID,请使用 Discord 权限计算器,例如 this one(这里的 ID 称为权限号)。
希望对你有帮助!
【讨论】:
以上是关于Discord API / Restcord : 创建私人频道的主要内容,如果未能解决你的问题,请参考以下文章