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 |