部署前的准备
- discord平台账号
- coze平台账号
- 服务器(尽量国外)
Discord平台配置
- 打开 discord官网 ,登陆后点击左下角设置。
- 左侧菜单栏点击高级设置,右侧打开开发者模式。
- 回到discord主页,点击左侧➕添加服务器。
- 右键刚刚新建好的服务器,选择复制服务器ID并记录,即环境变量
GUILD_ID
。
- 打开 discord开发者平台 登陆后,点击右上角New Application,自定义名称(示例中为Coze-Bot)并勾选后点击Create。
- 左侧菜单栏选择General Information,右侧找到APPLICATION ID点击Copy并记录,即环境变量
COZE_BOT_ID
。
- 左侧菜单栏选择Bot,右侧打开如图所示的三个权限后点击Save Changes。
- 点击Reset Token。
- 点击Copy后并记作
Coze-Bot-Token
,后续在coze平台会用到。
- 左侧点击OAuth2,右侧在OAuth2 URL Generator中先选择bot再选择Administrator,最下方GENERATED URL中会生成URL,点击 Copy并用浏览器打开。
- 打开后选择刚刚创建好的服务器,点击继续。
- 点击授权后该Bot会被邀请至该服务器。
至此,即将被Coze托管的Bot已创建完成。
重复5-12步再次创建一个Bot并邀请进入同样的服务器,并记录该Bot的Token,即环境变量 BOT_TOKEN ,此Bot用作监听服务器消息。
- 回到discord首页,进入刚刚新建好的服务器,点击F12打开开发者工具,选择NetWork。
- 在服务器中发送任意消息,在开发者工具的左侧请求列表中点击messages,右侧点击Headers-Request Headers,找到Authorization,复制其value并记录,即环境变量
USER_AUTHORIZATION
。
不触发账号退出或切换账号事件的情况下,此Authorization一般不会失效。
Coze平台配置
- 打开 coze官网 ,左侧点击Personal,右侧点击Create bot,自定义Bot名称后点击Confirm。
- 左侧选择Single agent mode,中间Auto-Suggestion选择On,其他选项根据自己需求个性化配置完成后点击右上角Publish。
- 点击Discord的Configure。
- 粘贴Discord平台配置中第
9
步记录的Coze-Bot-Token
后点击Save
。
- 取消勾选
Bot Store
,勾选Discord
后点击右上角的Publish
。
- 回到discord的服务器中即可看到被coze托管的机器人已上线,@机器人发送消息可得到响应。
CDP服务部署 docker版
服务器安装docker。如何安装docker
任意目录下执行如下docker命令,按照Discord平台配置中记录的环境变量配置参数。
shell
docker run --name coze-discord-proxy -d --restart always \
-p 7077:7077 \
-v $(pwd)/data:/app/coze-discord-proxy/data \
-e USER_AUTHORIZATION="MTA5OTg5N************uIfytxUgJfmaXUBHVI" \
-e BOT_TOKEN="MTE5OTk2************rUWNbG63w" \
-e GUILD_ID="11************96" \
-e COZE_BOT_ID="11************97" \
-e PROXY_SECRET="123456" \
-e TZ=Asia/Shanghai \
deanxv/coze-discord-proxy
推荐设置环境变量中的 PROXY_SECRET ,该参数即作为API Key使用。
如果出现镜像无法拉取,可以尝试使用 GitHub 的 Docker 镜像,将上面的 deanxv/coze-discord-proxy 替换为 ghcr.io/deanxv/coze-discord-proxy 即可。
- 启动成功后即可看到运行状态。
shell
[root@CVM42567 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4d2c5689e560 ghcr.io/deanxv/coze-discord-proxy:latest "/coze-discord-proxy" 2 days ago Up 2 days 0.0.0.0:7077->7077/tcp, :::7077->7077/tcp
- 查看服务日志,打印如下信息并无报错异常则为启动成功。
shell
[root@CVM42567 cdp2]# docker logs -f 4d2c5689e560
[SYS] 2024/04/28 - 14:08:01 | COZE-DISCORD-PROXY vX.X.X started
[SYS] 2024/04/28 - 14:08:03 | Environment variable check passed.
[SYS] 2024/04/28 - 14:08:03 | Bot is now running. Enjoy It.
- 打开接口文档
http://<ip>:<端口>/swagger/index.html
即可开始调试或集成其他项目。
CDP服务部署 docker-compose版
服务器安装docker-compose。如何安装docker-compose
任意目录下创建文件
docker-compose.yml
,按照Discord平台配置
中记录的环境变量配置参数。
shell
version: '3.4'
services:
coze-discord-proxy:
image: deanxv/coze-discord-proxy:latest
container_name: coze-discord-proxy
restart: always
ports:
- "7077:7077"
volumes:
- ./data:/app/coze-discord-proxy/data
environment:
- USER_AUTHORIZATION=MTA5OTg5N************aXUBHVI # discord用户的鉴权参数(多个请以,分隔)
- BOT_TOKEN=MTE5OT************UrUWNbG63w # 监听消息的Bot-Token
- GUILD_ID=11************96 # 两个机器人所在的服务器ID
- COZE_BOT_ID=11************97 # 由coze托管的机器人ID
- PROXY_SECRET=123456 # [可选]接口密钥-请求头校验的值(多个请以,分隔) [作为API Key使用]
- TZ=Asia/Shanghai
推荐设置环境变量中的 PROXY_SECRET ,该参数即作为API Key使用。
- 在此目录下执行
docker-compose pull && docker-compose up -d
命令(更新版本也可使用该命令)。
如果出现镜像无法拉取,可以尝试使用 GitHub 的 Docker 镜像,将上面的 deanxv/coze-discord-proxy 替换为 ghcr.io/deanxv/coze-discord-proxy 即可。
- 启动成功后即可看到运行状态。
shell
[root@CVM42567 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4d2c5689e560 ghcr.io/deanxv/coze-discord-proxy:latest "/coze-discord-proxy" 2 days ago Up 2 days 0.0.0.0:7077->7077/tcp, :::7077->7077/tcp
- 查看服务日志,打印如下信息并无报错异常则为启动成功。
shell
[root@CVM42567 cdp2]# docker logs -f 4d2c5689e560
[SYS] 2024/04/28 - 14:08:01 | COZE-DISCORD-PROXY vX.X.X started
[SYS] 2024/04/28 - 14:08:03 | Environment variable check passed.
[SYS] 2024/04/28 - 14:08:03 | Bot is now running. Enjoy It.
- 打开接口文档
http://<ip>:<端口>/swagger/index.html
即可开始调试或集成其他项目。
CDP服务部署 zeabur版
一键部署
一键部署后 USER_AUTHORIZATION
,BOT_TOKEN
,GUILD_ID
,COZE_BOT_ID
,PROXY_SECRET
变量也需要替换!
手动部署
- 首先 fork 一份代码。
- 进入 Zeabur,使用github登录,进入控制台。
- 在 Service -> Add Service,选择 Git(第一次使用需要先授权),选择你 fork 的仓库。
- Deploy 会自动开始,先取消。
- 添加环境变量
USER_AUTHORIZATION
,BOT_TOKEN
,GUILD_ID
,COZE_BOT_ID
,PROXY_SECRET
后保存。 - 选择 Redeploy。
- 如下显示运行中即为部署成功。