squareonex / seat-discord-connector
一个基于定义模式的SeAT插件,用于维护Discord公会中的用户访问权限。
Requires
- ext-json: *
- socialiteproviders/discord: ^v2.0
- warlof/seat-connector: ^2.0
Requires (Dev)
- orchestra/testbench: ^4.0
This package is not auto-updated.
Last update: 2024-09-22 16:34:38 UTC
README
SeAT插件,基于定义模式维护Discord公会中的用户访问权限。
设置
创建应用
- 访问以下网址以创建应用并获取bot令牌: https://discordapp.com/developers/applications
- 给它一个名称和合适的描述;这样用户就能知道它是什么相关的了。
- 在侧边栏中,点击“OAuth2”并点击两次“添加重定向”按钮,并在生成的字段中填入以下地址:
{seat-public-url}/seat-connector/registration/discord/callback
{seat-public-url}/seat-connector/settings/discord/callback
- 在侧边栏中点击“Bot”并点击“添加Bot”按钮
- 勾选“Public Bot”
- 勾选“需要OAuth2代码授权”
- 勾选“服务器成员意图”
注意
例如,如果你在
seat.example.com
上有SeAT,回调将是:
https://seat.example.com/seat-connector/registration/discord/callback
https://seat.example.com/seat-connector/settings/discord/callback
但是,如果你使用
example.com/seat
访问SeAT,回调将变为:
https://example.com/seat/seat-connector/registration/discord/callback
https://example.com/seat/seat-connector/settings/discord/callback
检索凭据
一旦你的应用创建完成,我们需要检索将用于在SeAT中设置连接器的凭据。
访问以下网址并点击与之前创建的应用匹配的框: https://discordapp.com/developers/applications
注意以下信息
- 从侧边栏的“常规信息”下
Client ID
,这是一个显示的数字Client Secret
,这是一段奇怪的文本(点击“点击显示”链接)
- 从侧边栏的“Bot”下
Token
,这是一段奇怪的文本(点击“点击显示Token”链接)。
安装包
从SeAT 3.0开始 - 安装包变得非常简单。只需要求warlof/seat-discord-connector
,发布供应商并运行迁移脚本 :)
- 首先,运行以下命令
composer require warlof/seat-discord-connector
- 最后,使用
php artisan migrate
运行迁移脚本
别忘了用service supervisor restart
(或如果你在Docker下,是你的seat-worker
容器)重启supervisor
;)
重要
所有上述命令都必须使用SeAT实例用户
www-data
、seat
或你在安装中做的任何事情来运行。它们需要在根SeAT目录下运行,该目录通常是/var/www/seat
设置包
使用你的SeAT实例上的管理员用户进行身份验证。如果上述所有语句都已正确执行,你将在侧边栏中出现一个名为“连接器”的新部分。
打开它,然后进入“设置”并使用本指南开头收集的信息填写表单。
使用“更新”按钮确认,这将您重定向到Discord SSO。
在列表中,选择SeAT Bot需要安装的服务器,保持权限不变,然后点击授权
按钮。
对于所有这些法语内容,我感到很抱歉,但Discord SSO使用浏览器设置来显示内容。尽管语言不同,但所有国家的内容应该相似。
一旦您被重定向回SeAT,您可以选择Discord
,然后点击绿色的更新集合
按钮,这将向SeAT提供Discord上可用的角色。
设置访问
要建立SeAT和Discord之间的映射,请进入连接器 > 访问管理
。如果您在表单中看不到任何角色,请进入连接器 > 设置
并点击更新Discord集合
按钮。
在Discord连接器中,有6种称为过滤器
的映射。它们的范围在下表中解释。
要创建一个过滤器,只需根据您的需求填写左侧可用的表单。然后,点击添加
按钮。在任何时候,您都可以检查右侧可用的表中设置了哪些过滤器。您还可以使用每个映射行旁边的红色删除
按钮删除映射。
链接账户和获取邀请
作为用户,您将在侧边栏中看到一个名为连接器
的部分。打开它并点击加入服务器
。
这将您重定向到Discord SSO,并显示一个简单的表单,告知您机器人将能够收集基本信息(如您的Discord唯一ID和昵称),并有权邀请您加入附带的Discord服务器。
只需使用授权
按钮确认,这将您重定向到SeAT主页,并显示一个绿色的确认框。
您将被自动邀请到Discord服务器和附带的频道。
设置
SeAT global_settings表中的键'seat-discord-connector'被此模块使用。它包含此模块使用的序列化设置。
默认情况下,此连接器期望完全管理Discord服务器上的所有角色。通过仔细操作这些值,您可以定义此连接器可以操作的角色的范围。默认设置中使用“RoleName Example2 RemoveMe”是为了让管理员在没有阅读此文档的情况下,通过查看设置就能最好地了解如何配置多个角色的字段。
升级
如果您是从4.x之前的版本升级的,您可能需要将您的数据转换为新的连接器结构。要这样做,请运行命令seat-connector:convert:discord
,它将协助您完成此过程。
回调URL已更改,这意味着您需要更新您的Discord应用程序。
已知问题
以下是一个已知问题(及其解决方案,如果适用)的快速列表。目的是帮助您进行故障排除并找到解决方案路径。