OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  whatsapp-ultimate:完整的 WhatsApp 集成:消息、媒体、投票、语音转录等

whatsapp-ultimate:完整的 WhatsApp 集成:消息、媒体、投票、语音转录等

 
  chatgp ·  2026-02-05 19:28:12 · 3 次点击  · 0 条评论  

名称: whatsapp-ultimate
版本: 3.5.0
描述: "具备三重安全规则的 WhatsApp 技能。您的智能体仅在正确的聊天中,被正确的人@时才会发言。"
元数据:
openclaw:
emoji: "📱"
requires:
channels: ["whatsapp"]


WhatsApp Ultimate

您在 WhatsApp 上能做的所有事情,您的 AI 智能体同样可以做到。

本技能记录了通过 OpenClaw 原生渠道集成可用的所有 WhatsApp 功能。无需外部 Docker 服务,无需 CLI 封装器——仅通过 Baileys 直接使用 WhatsApp Web 协议。


前提条件

  • 已配置 WhatsApp 渠道的 OpenClaw
  • 通过二维码关联的 WhatsApp 账户 (openclaw whatsapp login)

功能概览

类别 功能
消息发送 文本、媒体、投票、贴纸、语音消息、GIF
消息交互 反应、回复/引用、编辑、撤回
群组管理 创建、重命名、图标、描述、成员、管理员、邀请链接

总计:22 项独立操作


消息发送

发送文本

message action=send channel=whatsapp to="+34612345678" message="你好!"

发送媒体(图片/视频/文档)

message action=send channel=whatsapp to="+34612345678" message="看看这个" filePath=/path/to/image.jpg

支持格式:JPG, PNG, GIF, MP4, PDF, DOC 等。

发送投票

message action=poll channel=whatsapp to="+34612345678" pollQuestion="什么时间?" pollOption=["下午3点", "下午4点", "下午5点"]

发送贴纸

message action=sticker channel=whatsapp to="+34612345678" filePath=/path/to/sticker.webp

必须是 WebP 格式,建议尺寸 512x512。

发送语音消息

message action=send channel=whatsapp to="+34612345678" filePath=/path/to/audio.ogg asVoice=true

关键: 语音消息请使用 OGG/Opus 格式。MP3 格式可能无法正常播放。

发送 GIF

message action=send channel=whatsapp to="+34612345678" filePath=/path/to/animation.mp4 gifPlayback=true

请先将 GIF 转换为 MP4(WhatsApp 要求):

ffmpeg -i input.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4 -y

消息交互

添加反应

message action=react channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" emoji="🚀"

移除反应

message action=react channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" remove=true

回复/引用消息

message action=reply channel=whatsapp to="34612345678@s.whatsapp.net" replyTo="QUOTED_MSG_ID" message="回复这条消息!"

编辑消息(仅限自己发送的消息)

message action=edit channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" message="更新后的文本"

撤回/删除消息

message action=unsend channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123"

群组管理

创建群组

message action=group-create channel=whatsapp name="项目团队" participants=["+34612345678", "+34687654321"]

重命名群组

message action=renameGroup channel=whatsapp groupId="123456789@g.us" name="新名称"

设置群组图标

message action=setGroupIcon channel=whatsapp groupId="123456789@g.us" filePath=/path/to/icon.jpg

设置群组描述

message action=setGroupDescription channel=whatsapp groupJid="123456789@g.us" description="第一季度项目团队聊天"

添加成员

message action=addParticipant channel=whatsapp groupId="123456789@g.us" participant="+34612345678"

移除成员

message action=removeParticipant channel=whatsapp groupId="123456789@g.us" participant="+34612345678"

提升为管理员

message action=promoteParticipant channel=whatsapp groupJid="123456789@g.us" participants=["+34612345678"]

撤销管理员

message action=demoteParticipant channel=whatsapp groupJid="123456789@g.us" participants=["+34612345678"]

退出群组

message action=leaveGroup channel=whatsapp groupId="123456789@g.us"

获取邀请链接

message action=getInviteCode channel=whatsapp groupJid="123456789@g.us"

返回:https://chat.whatsapp.com/XXXXX

撤销邀请链接

message action=revokeInviteCode channel=whatsapp groupJid="123456789@g.us"

获取群组信息

message action=getGroupInfo channel=whatsapp groupJid="123456789@g.us"

返回:名称、描述、成员、管理员、创建日期。


JID 格式

WhatsApp 内部使用 JID(Jabber ID):

类型 格式 示例
个人 <号码>@s.whatsapp.net 34612345678@s.whatsapp.net
群组 <ID>@g.us 123456789012345678@g.us

当使用 to= 参数并传入电话号码时,OpenClaw 会自动转换为 JID 格式。


实用技巧

语音消息

始终使用 OGG/Opus 格式:

ffmpeg -i input.wav -c:a libopus -b:a 64k output.ogg

贴纸

将图片转换为 WebP 贴纸:

ffmpeg -i input.png -vf "scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=0x00000000" output.webp

确认消息 (ackMessage)

当收到入站消息时,在网关层面(模型推理之前)立即发送一条文本消息:

{
  "channels": {
    "whatsapp": {
      "ackMessage": {
        "text": "⚡",
        "direct": true,
        "group": "never"
      }
    }
  }
}
字段 类型 默认值 描述
text 字符串 "" 要发送的消息(空字符串 = 禁用)
direct 布尔值 true 在私聊中发送
group "always" / "mentions" / "never" "never" 群聊中的行为

这与 ackReaction(发送表情反应)不同。ackMessage 发送一个独立的消息气泡——在 WhatsApp Web 中,即使反应翻转不可见,此消息也可见。

频率限制

WhatsApp 有反垃圾邮件措施。请避免:
- 向大量联系人批量发送消息
- 快速连续发送消息
- 向未先向您发送消息的联系人发送消息

消息 ID

要进行反应/编辑/撤回操作,您需要消息 ID。入站消息的事件负载中包含此 ID。对于您自己发送的消息,发送响应中包含该 ID。


与其他技能对比

功能 whatsapp-ultimate wacli whatsapp-automation gif-whatsapp
原生集成 ❌ (CLI) ❌ (Docker) N/A
发送文本
发送媒体
投票
贴纸
语音消息
GIF
反应
回复/引用
编辑
撤回
创建群组
群组管理 ✅ (完整)
接收消息
双向聊天
外部依赖 Go 二进制文件 Docker + WAHA ffmpeg

3.5.0

  • 新增: ackMessage —— 网关级即时消息确认。在入站消息到达时(在任何模型推理之前)发送一条可配置的文本消息(例如 ⚡)。触发速度与 ackReaction(表情翻转)相同。在 WhatsApp Web 中,当反应翻转不可见时,此功能可作为视觉提示,用以区分您的消息和机器人回复。

3.4.0

  • 修复: 聊天搜索现在可解析 LID/JID 别名——通过聊天名称搜索可以找到跨 @lid@s.whatsapp.net 两种 JID 格式的消息。
  • 新增: resolveChatJids() 交叉引用聊天、联系人和消息表,以发现给定聊天筛选器的所有 JID 别名。
  • 改进: 如果未解析到任何 JID,搜索将回退到原始的 LIKE 行为,因此不会出现功能倒退。

3.0.0

您的智能体
    ↓
OpenClaw 消息工具
    ↓
WhatsApp 渠道插件
    ↓
Baileys (WhatsApp Web 协议)
    ↓
WhatsApp 服务器

无需外部服务。无需 Docker。无需 CLI 工具。直接协议集成。


许可证

MIT —— OpenClaw 的一部分


链接

  • OpenClaw: https://github.com/openclaw/openclaw
  • Baileys: https://github.com/WhiskeySockets/Baileys
  • ClawHub: https://clawhub.com
3 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor