解放双手:在 EFB comwechat 中优雅转发微信聊天记录
🌟 引言:为何需要这个功能?
EhForwarderBot (EFB) 是一个强大的开源消息隧道框架,它允许我们将微信、QQ 等多种聊天平台的消息聚合到 Telegram (TG) 等统一的客户端中进行管理。其中,efb-wechat-comwechat-slave
是连接微信和 EFB 的一个热门选择。
然而,尽管 EFB 极大地提升了跨平台沟通的便利性,但在处理某些微信特有消息类型时,仍会遇到一些不便。例如,当朋友从微信转发来一段聊天记录,或者分享了一个小程序、公众号文章卡片时,我们想通过 TG 将这些内容再次转发给其他微信好友,往往会发现 EFB 默认不支持完美转发这类复杂消息。这时,我们可能不得不拿起手机,在微信原生应用中完成操作,稍显繁琐。
幸运的是,我发现底层的 ComWeChatRobot 实际上具备转发聊天记录等消息的能力。因此,我对 efb-wechat-comwechat-slave
进行了一些小小的定制,实现了在 TG 端直接操作转发这些微信原生消息的功能。
🚀 操作指南:三步轻松转发
通过这个自定义功能,转发微信聊天记录等消息变得非常简单:
标记目标消息:在 TG 中,对着你想要转发的那条来自微信的消息(比如一段聊天记录),回复
/forward
命令。✨ 提示:此命令仅用于标记,不会立即发送。
确认转发标记:发送
/forward
后,原消息下方会出现一个特殊的“转发标记”符号,表明这条消息已被选定。
图1: 消息已附加转发标记执行 Telegram 转发:现在,使用 Telegram 自带的转发功能,将这条带有“转发标记”的消息转发给你想发送的微信好友或群聊。
图2: 转发功能
完成以上步骤后,你的微信好友将会收到一条完整的、与微信原生格式一致的聊天记录(或其他类型的消息)。
图3: 微信好友收到的消息样式(此为 ComWeChat 显示效果,实际在微信中为原生格式)
🎯 功能价值与适用场景
你可能会问,简单的文本和图片不是可以直接复制粘贴或者通过 TG 的普通转发实现吗?确实如此。但这个功能的真正价值在于处理那些 Telegram 无法直接完美呈现或转发的微信原生消息类型,例如:
- 合并转发的聊天记录:这是最主要的应用场景。
- 小程序卡片:轻松分享实用的小程序给朋友。
- 公众号文章/分享卡片:保持原始的卡片样式进行分享。
- 视频号内容等其他复杂消息。
通过 /forward
命令预处理后,这些消息就能以接近微信原生的方式被转发,极大地提升了使用 EFB 时的体验和效率。
🛠️ 实现思路简介
对于有兴趣了解其背后原理的朋友,这里简单提一下:
此功能的核心在于利用了 ComWeChatRobot
提供的底层接口。efb-wechat-comwechat-slave
在接收到 /forward
指令后,会将目标消息的 ID 缓存起来。当用户通过 Telegram 转发这条被标记的消息时,slave 插件会识别到这个特殊标记,并调用 ComWeChatRobot
的相应方法(如 forward_msg_by_id
),将原始消息内容转发到目标会话,而不是简单地传递 Telegram 格式的消息。
这确保了即使是复杂的微信原生消息,也能被正确地重新发送。