chatwoot的deltachat客户端,用户可以加密与chatwoot交谈。
项目描述
delawoot
一个充当chatwoot客户端的deltachat机器人,用户可以加密与chatwoot交谈。
安装
您需要将此机器人连接到一个运行中的https://www.chatwoot.com/实例,从现在起称为example.org
。让我们先配置chatwoot。
在chatwoot中配置回调URL
机器人需要可以通过HTTP从chatwoot实例访问,您需要在chatwoot网页界面中输入一个回调URL。为此,请转到https://example.org/app/accounts/1/settings/integrations
并配置一个新的webhook。
例如,如果机器人在与chatwoot实例相同的docker主机上运行,请输入http://deltawoot.internal:5000
(deltawoot.internal是容器名称),并启用message_created
选项。
将delawoot添加到chatwoot的docker-compose.yml
如果您像这里那样通过docker compose安装了chatwoot,您可以将deltawoot容器添加到chatwoot的docker-compose.yml中,如下所示
services:
[...] # here all the chatwoot containers are defined, see https://raw.githubusercontent.com/chatwoot/chatwoot/develop/docker-compose.production.yaml
deltawoot:
image: missytake/deltawoot:latest
restart: unless-stopped
container_name: deltawoot.internal
env_file: /home/chatwoot/.env
depends_on:
- rails
volumes:
- deltawoot:/home/deltawoot/files
ports:
- "127.0.0.1:5000:5000"
volumes:
deltawoot:
然后您需要将环境变量添加到一个 .env
文件中。在上面的示例 docker-compose.yml 中,它在 /home/chatwoot/.env
,如果您使用不同的文件,应更改路径。例如,它应该看起来像这样(更多关于配置参数的含义请见下文)
WOOT_PROFILE_ACCESS_TOKEN=s3cr3t
DELTAWOOT_ADDR=deltawoot@nine.testrun.org
DELTAWOOT_PASSWORD=p4$$w0rD
WOOT_ACCOUNT_ID=1
然后您可以启动 docker 容器
docker compose up -d
配置参数
您可以在 https://example.org/app/accounts/1/profile/settings
的底部获取 WOOT_PROFILE_ACCESS_TOKEN
。注意:启动 chatwoot 后,您需要将用于生成 WOOT_PROFILE_ACCESS_TOKEN
的账户赋予操作员 "Deltawoot" API 收件箱的访问权限,在 https://example.org/app/accounts/1/settings/inboxes/list
。
对于 DELTAWOOT_ADDR
和 DELTAWOOT_PASSWORD
,您可以使用任何电子邮件账户。
对于 WOOT_ACCOUNT_ID
,请访问您想要 Delta Chat 消息弹出的 Chatwoot 会话列表,例如登录后直接出现的那个。它应该像 https://example.org/app/accounts/1/dashboard
一样。在 URL 中,WOOT_ACCOUNT_ID
应该是唯一的数字,在这个例子中是 1
,因为它是默认值。如果您在 deltawoot 尝试连接到 chatwoot API 时在日志中收到 404 错误,您可能需要它。
扩展配置
您可以为配置 deltawoot 设置其他环境变量,例如
WOOT_API_URL=https://example.org/api/v1
DELTAWOOT_NAME=Your friendly Chatwoot Bridge
DELTAWOOT_AVATAR=files/avatar.jpg
DELTAWOOT_HELP_MSG="Hi, ask me for cooking recipes!"
DELTAWOOT_LEAVE_MSG="Please don't add me to groups, write me 1:1 instead."
WOOT_INBOX_ID=1
SENTRY_TOKEN=https://8sahf8dhdufs9fijis9fd@o7898929132132345.ingest.de.sentry.io/3247829357927898
WOOT_API_URL
仅在 chatwoot 和 deltawoot 在不同的主机上运行时需要;确保 deltawoot 的主机可以访问 chatwoot 的 API URL。在这种情况下,您还需要重新配置 chatwoot 集成设置中的回调 URL,即最初配置的。
DELTAWOOT_NAME
将是 Delta Chat 中机器人的显示名称。
DELTAWOOT_AVATAR
将是 Delta Chat 中机器人的头像;如果您在 docker 中运行 deltawoot,您需要将其放入 docker 卷中,并在路径前加上 files/
。
DELTAWOOT_HELP_MSG
是如果您扫描机器人的邀请码或向其发送 /help
时机器人会说的内容。您可以自定义它。
如果您尝试将机器人添加到群组,机器人将立即离开群组,并向添加它的人发送解释。DELTAWOOT_LEAVE_MSG
就是机器人在这种情况下会说的内容。
默认情况下,deltawoot 会创建自己的 API 通道。但如果您想使用现有的 API 通道,您可以手动设置 WOOT_INBOX_ID
。转到您想要使用的 API 通道的设置 example.org/app/accounts/1/settings/inboxes/list
,点击设置轮,然后点击“协作者”,添加所有您想要处理传入请求的代理,最后点击“更新”。
如果您想使用 https://sentry.io 监控 deltawoot 错误,可以指定一个 SENTRY_TOKEN
作为环境变量。
将代理添加到 Delta Chat 收件箱
现在您必须将一些代理添加到您的收件箱,这样他们才能真正阅读通过 Delta Chat 传入的消息。
为此,请转到 https://example.org/app/accounts/1/settings/inboxes/list
,然后在“Delta Chat”旁边点击设置轮。然后点击“协作者”,添加所有您想要处理传入请求的代理,最后点击“更新”。
发布您的机器人邀请链接
现在您可以使用 docker logs -ft deltawoot.internal
查看日志,以找到机器人的加入码
2024-07-10T14:20:22.427084078Z INFO:root:Running deltachat core v1.141.2
2024-07-10T14:20:22.820477302Z INFO:root:New chatwoot inbox created for deltawoot, please add agents to it here: https://example.org/app/accounts/1/settings/inboxes/1
2024-07-10T14:20:22.431288436Z You can publish this invite code to your users: OPENPGP4FPR:AA5FDEF02BFC355FDEA09FF4CA4AFCD2F065E613#a=deltawoot%40nine.testrun.org&n=deltawoot%40nine.testrun.org&i=q4DhTVr1T2A&s=mT3Bo9JDdVx
2024-07-10T14:20:22.437551296Z * Serving Flask app 'deltawoot-webhook'
2024-07-10T14:20:22.438395066Z * Debug mode: on
2024-07-10T14:20:22.451052630Z INFO:root:src/securejoin.rs:126: Generated QR code.
2024-07-10T14:20:22.451080018Z INFO:root:src/scheduler.rs:66: starting IO
将 OPENPGP4FPR:
和它后面的所有内容复制粘贴到 https://i.delta.chat 的表单中,以生成一个邀请链接,您可以在您的联系页面上宣传。
开发
如果您想在没有 docker 的情况下进行开发,您可以像这样配置和启动 deltawoot
python3 -m venv venv
. venv/bin/activate
pip install -e .[dev]
export WOOT_URL=https://example.org/api/v1
export WOOT_PROFILE_ACCESS_TOKEN=s3cr3t
export WOOT_ACCOUNT_ID=1
export DELTAWOOT_ADDR=deltawoot@nine.testrun.org
export DELTAWOOT_PASSWORD=p4$$w0rD
deltawoot
您可以使用 pytest
运行测试。
发布清单
-
git checkout -b prepare-1.x.x
- 更新更改日志中的版本号
- 更新 setup.cfg 中的版本号
-
git commit -am "准备 1.x.x 版本发布"
-
git tag 1.x.x
-
git push --tags -u origin prepare-1.x.x
- 打开一个 PR,并将此清单复制到那里
-
python -m build
-
twine check dist/*
-
twine upload dist/*
-
sudo docker build -t missytake/deltawoot .
-
sudo docker tag missytake/deltawoot missytake/deltawoot:1.x.x
-
sudo docker push missytake/deltawoot:1.x.x
-
sudo docker push missytake/deltawoot:latest
- 合并此 PR 并创建 GitHub 发布版
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分发
构建分发
deltawoot-1.3.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6750b1628bdc4addb6a229ba3c33918b97e75db4a2141cbb2c803098965232d0 |
|
MD5 | 8393157cb3a489b3450eb0c3736a3e1b |
|
BLAKE2b-256 | 6cdab69cd62916fc212425dd0010afdb24b5e30a364c32280ad1e32273cebc9d |
deltawoot-1.3.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bc4a176a29df257ebf37ef83d23f31899734eda8bb25a2d0486538d339af04b1 |
|
MD5 | 59af6a29dcfd6523e2a74b87615afd68 |
|
BLAKE2b-256 | 28be52d6396de73cac86bd81b9673e1829fbaac05ef45f8129fae364f448f0d7 |