跳转到主要内容

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_ADDRDELTAWOOT_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 (52.7 kB 查看哈希值)

上传时间 源代码

构建分发

deltawoot-1.3.1-py3-none-any.whl (44.2 kB 查看哈希值)

上传时间 Python 3

由以下支持