@beeper/chat-adapter-matrix

中文文档
0.2.0发布于 2026/03/16MITTypeScriptES Module近 30 天下载 8.6万

聊天矩阵适配器

中文使用文档
文档目录15 节
  1. 安装
  2. 使用量
  3. 认证
  4. 访问令牌
  5. 用户名/ 密码
  6. 默认
  7. 常见选项
  8. 环境变量
  9. 线索模型
  10. 特征
  11. 持久性
  12. 信件和历史 API
  13. 限制
  14. 实例
  15. 许可证

@ beeper/ chat-adapter- matrix (英语)

矩阵适配器 聊天SDK它运行在Matrix同步而不是webhooks上,并与Beeper对话以及WhatsApp,Telegram,Instagram,和Signal等网络相接.

安装

需要节点.js >=22。 。 。 .

pnpm add chat @beeper/chat-adapter-matrix

使用量

createMatrixAdapter() 读取其配置时从环境变量中调用无参数.

import { Chat } from "chat";
import { createMemoryState } from "@chat-adapter/state-memory";
import { createMatrixAdapter } from "@beeper/chat-adapter-matrix";

const matrix = createMatrixAdapter();

const bot = new Chat({
  userName: process.env.MATRIX_BOT_USERNAME ?? "beeper-bot",
  state: createMemoryState(),
  adapters: { matrix },
});

bot.onNewMention(async (thread, message) => {
  await thread.subscribe();
  await thread.post(`Hi ${message.author.userName}. Mention me or run /ping.`);
});

bot.onSlashCommand("/ping", async (event) => {
  await event.channel.post("pong");
});

await bot.initialize();

聊天 SDK 概念, 如 Chat, (中文(简体) ), Thread, (中文(简体) ), Message订阅费和处理费都一样 见核心API的上游文件:

认证

访问令牌

createMatrixAdapter({
  baseURL: process.env.MATRIX_BASE_URL!,
  auth: {
    type: "accessToken",
    accessToken: process.env.MATRIX_ACCESS_TOKEN!,
    userID: process.env.MATRIX_USER_ID,
  },
});

用户名/ 密码

createMatrixAdapter({
  baseURL: process.env.MATRIX_BASE_URL!,
  auth: {
    type: "password",
    username: process.env.MATRIX_USERNAME!,
    password: process.env.MATRIX_PASSWORD!,
    userID: process.env.MATRIX_USER_ID,
  },
});

默认

  • 持续行为在Chat提供 state 适配器.
  • 建议Redis或另一个耐久状态适配器重启耐久性.
  • deviceID 尽可能从认证中推断出,然后从国家中再用,并且只作为最后手段产生.
  • recoveryKey 允许E2EE.
  • inviteAutoJoin: {} 允许邀请自动加入.

常见选项

createMatrixAdapter({
  baseURL: process.env.MATRIX_BASE_URL!,
  auth: {
    type: "accessToken",
    accessToken: process.env.MATRIX_ACCESS_TOKEN!,
    userID: process.env.MATRIX_USER_ID,
  },
  recoveryKey: process.env.MATRIX_RECOVERY_KEY,
  commandPrefix: "/",
  roomAllowlist: ["!room:beeper.com"],
  inviteAutoJoin: {
    inviterAllowlist: ["@alice:beeper.com", "@ops:beeper.com"],
  },
  matrixSDKLogLevel: "error",
});

高级调制保留代码配置 :

createMatrixAdapter({
  baseURL: process.env.MATRIX_BASE_URL!,
  auth: {
    type: "accessToken",
    accessToken: process.env.MATRIX_ACCESS_TOKEN!,
    userID: process.env.MATRIX_USER_ID,
  },
  e2ee: {
    useIndexedDB: false,
    cryptoDatabasePrefix: "beeper-matrix-bot",
  },
  persistence: {
    keyPrefix: "my-bot",
    session: {
      ttlMs: 86_400_000,
    },
    sync: {
      persistIntervalMs: 10_000,
    },
  },
});

环境变量

createMatrixAdapter() 没有参数只使用这些 env vars :

变量需求说明
MATRIX_BASE_URL对矩阵主服务器基础 URL
MATRIX_ACCESS_TOKEN对*Access- token 认证的访问令牌
MATRIX_USERNAME对*密码认证的用户名
MATRIX_PASSWORD对*密码认证密码
MATRIX_USER_ID没有用户标识提示
MATRIX_DEVICE_ID没有明确设备 ID 覆盖
MATRIX_RECOVERY_KEY没有启用 E2EE 和密钥备份拖放
MATRIX_BOT_USERNAME没有引用检测用户名
MATRIX_COMMAND_PREFIX没有斜线命令前缀. 默认为 /
MATRIX_INVITE_AUTOJOIN没有启用邀请自动连接
MATRIX_INVITE_AUTOJOIN_ALLOWLIST没有允许邀请bot 的逗号分隔矩阵用户ID
MATRIX_SDK_LOG_LEVEL没有矩阵 SDK 日志级别

使用其中之一 MATRIX_ACCESS_TOKEN,或 MATRIX_USERNAME 加号 MATRIX_PASSWORD。 。 。 .

线索模型

  • 母体室是一个Chat SDK频道.
  • 上层房间信息属于频道时间表.
  • 使用 Chat SDK 线程的矩阵线程响应映射 roomID + rootEventID。 。 。 .
  • openDM(userId) 在可能的情况下重新使用现有的直接房间,并在需要时创建一个直接房间.

特征

特性支助
提及对
丰富文本是的,通过矩阵 formatted_body 财务报告和审定财务报表 m.mentions
线索答复对
反应(添加/移动)对
信件编辑对
信件删除对
打字指标对
直接消息对
文件上传对
信件历史对
频道和线程元数据对
欧2EE对
邀请自动加入对
斜线命令从信件文本中预分隔
网络呼号不,这个适配器使用同步投票
纸牌没有
模块没有
电文没有
原生溪流没有

持久性

为生产,将适配器与Redis等耐用Chat状态适配器配对.

import { Chat } from "chat";
import { createRedisState } from "@chat-adapter/state-redis";
import { createMatrixAdapter } from "@beeper/chat-adapter-matrix";

const matrix = createMatrixAdapter({
  baseURL: process.env.MATRIX_BASE_URL!,
  auth: {
    type: "accessToken",
    accessToken: process.env.MATRIX_ACCESS_TOKEN!,
    userID: process.env.MATRIX_USER_ID,
  },
  recoveryKey: process.env.MATRIX_RECOVERY_KEY,
});

const bot = new Chat({
  userName: process.env.MATRIX_BOT_USERNAME ?? "beeper-bot",
  state: createRedisState({ url: process.env.REDIS_URL! }),
  adapters: { matrix },
});

持久性包括:

  • 生成或推断设备ID
  • 密码登录会话
  • 管理部房间制图
  • 矩阵同步快照
  • 启用 E2EE 时的 E2EE 秘密捆绑

信件和历史 API

适配器支持:

  • fetchMessage(threadId, messageId)
  • fetchMessages(threadId, options)
  • fetchChannelMessages(channelId, options)
  • fetchThread(threadId)
  • fetchChannelInfo(channelId)
  • listThreads(channelId, options)
  • openDM(userId)

限制

  • handleWebhook() 返回时 501 因为Matrix在这里使用同步投票.
  • 贺卡、模式和电文没有执行.
  • 在适配器层没有实施原生流化.
  • 斜线命令从纯文本消息中解析; Matrix 不提供本地斜线命令事件 .

实例

关于特定版本的修改,见 变动情况。 。 。 .

许可证

麻省理工学院

版本与发布记录

@beeper/chat-adapter-matrix 共发布 2 个版本,首次发布于 2026/02/25;过去 12 个月发布了 2 个版本。

版本发布日期距今
0.2.0latest2026/03/167 个月前
0.1.02026/02/258 个月前

关于 @beeper/chat-adapter-matrix 的常见问题

@beeper/chat-adapter-matrix 是什么?

聊天矩阵适配器

如何安装 @beeper/chat-adapter-matrix?

在项目目录运行 npm install @beeper/chat-adapter-matrix,或使用 pnpm add / yarn add / bun add。

@beeper/chat-adapter-matrix 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@beeper/chat-adapter-matrix 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@beeper/chat-adapter-matrix 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@beeper/chat-adapter-matrix 可以商用吗?

@beeper/chat-adapter-matrix 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@beeper/chat-adapter-matrix 的下载量有多少?

根据 npm 官方下载统计,@beeper/chat-adapter-matrix 在 2026/10/08 – 2026/11/06 这 30 天内被下载 86,060 次,日均约 2,869 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@beeper/chat-adapter-matrix 还在维护吗?

最新版本 0.2.0 发布于 2026/03/16(7 个月前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/02/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。