mcpField
W
whatsapp-automation

whatsapp-automation

github.com/davepoon生产力3.7k122 次安装2 天前更新
代码仓库

关于 whatsapp-automation

这是一项通过 Rube MCP 上 Composio 的 WhatsApp 工具包自动执行 WhatsApp Business 操作的工作流技能,支持发送文本、模板、媒体、回复和联系人信息,以及管理资料和模板。

主要功能

  1. 01发送文本和已批准的模板消息
  2. 02上传并发送媒体
  3. 03回复收到的消息
  4. 04分享联系人卡片
  5. 05查看商业资料并管理模板

适用场景

  1. 01向联系人发送业务通知
  2. 02发送已批准的外发模板
  3. 03回复客户消息
  4. 04分享联系人卡片

MCP 相关

通过 Rube MCP 和 Composio 的 WhatsApp 工具包操作 WhatsApp Business。需要有效的 WhatsApp Business 连接;普通 WhatsApp 不受支持。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davepoon/buildwithclaude --skill whatsapp-automation

安装后在 Claude Code 中输入/whatsapp-automation确认已加载。

详细介绍

通过 Rube MCP 自动化 WhatsApp Business

通过 Rube MCP 使用 Composio 的 WhatsApp 工具包自动化 WhatsApp Business 操作。

工具包文档:composio.dev/toolkits/whatsapp

前置条件

  • 必须已连接 Rube MCP(可用 RUBE_SEARCH_TOOLS)
  • 通过 RUBE_MANAGE_CONNECTIONS 建立有效的 WhatsApp 连接,并使用工具包 whatsapp
  • 始终先调用 RUBE_SEARCH_TOOLS,以获取当前工具架构
  • 需要 WhatsApp Business API 账号(不能使用普通 WhatsApp 账号)

设置

获取 Rube MCP:在客户端配置中添加 https://rube.app/mcp 作为 MCP 服务。无需 API 密钥,只需添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 能正常响应,以验证 Rube MCP 是否可用
  2. 使用工具包 whatsapp 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请按返回的授权链接完成 WhatsApp Business 设置
  4. 运行任何工作流前,确认连接状态显示为 ACTIVE

核心工作流

1. 发送文本消息

适用场景:用户想向 WhatsApp 联系人发送文本消息

工具调用顺序:

  1. WHATSAPP_GET_PHONE_NUMBERS - 列出可用的企业电话号码 [前置步骤]
  2. WHATSAPP_SEND_MESSAGE - 发送文本消息 [必需]

关键参数:

  • to:接收方电话号码,使用国际格式(例如:'+14155551234')
  • body:消息文本内容
  • phone_number_id:用于发送消息的企业电话号码 ID

注意事项:

  • 电话号码必须使用包含国家/地区代码的国际 E.164 格式
  • 超出 24 小时窗口后发送消息需要使用已批准的模板
  • 24 小时窗口从客户上次给你发送消息时开始计算
  • 企业主动发起的对话必须先发送模板消息
2. 发送模板消息

适用场景:用户想发送预先批准的模板消息进行主动沟通

工具调用顺序:

  1. WHATSAPP_GET_MESSAGE_TEMPLATES - 列出可用模板 [前置步骤]
  2. WHATSAPP_GET_TEMPLATE_STATUS - 检查模板审批状态 [可选]
  3. WHATSAPP_SEND_TEMPLATE_MESSAGE - 发送模板消息 [必需]

关键参数:

  • template_name:已批准模板的名称
  • language_code:模板语言(例如:'en_US')
  • to:接收方电话号码
  • components:模板变量值和参数

注意事项:

  • 模板必须先经过 Meta 批准才能使用
  • 模板变量必须与预期的数量和格式一致
  • 发送未批准或已拒绝的模板会返回错误
  • 语言代码必须与模板已批准的翻译版本相符
3. 发送媒体消息

适用场景:用户想发送图像、文档或其他媒体

工具调用顺序:

  1. WHATSAPP_UPLOAD_MEDIA - 将媒体上传到 WhatsApp 服务器 [必需]
  2. WHATSAPP_SEND_MEDIA_BY_ID - 使用上传后获得的媒体 ID 发送媒体 [必需] 或
  3. WHATSAPP_SEND_MEDIA - 使用公开 URL 发送媒体 [替代方案]

关键参数:

  • media_url:媒体的公开 URL(用于 SEND_MEDIA)
  • media_id:上传响应中的 ID(用于 SEND_MEDIA_BY_ID)
  • type:媒体类型('image'、'document'、'audio'、'video'、'sticker')
  • caption:媒体的可选说明

注意事项:

  • 上传的媒体 ID 是临时的,会在一段时间后过期
  • 媒体大小限制因类型而异(图像:5MB,视频:16MB,文档:100MB)
  • 支持的格式:图像(JPEG、PNG)、视频(MP4、3GPP)、文档(PDF 等)
  • SEND_MEDIA 需要使用可公开访问的 HTTPS URL
4. 回复消息

使用时机:用户想回复收到的 WhatsApp 消息

工具顺序:

  1. WHATSAPP_SEND_REPLY - 回复特定消息[必需]

关键参数:

  • message_id:要回复的消息 ID
  • to:收件人的电话号码
  • body:回复文本内容

注意事项:

  • message_id 必须来自 24 小时窗口内收到的消息
  • 回复会在对话中显示为引用消息
  • 原始消息必须仍然存在(未删除),引用才会显示
5. 管理商业资料和模板

使用时机:用户想查看或管理其 WhatsApp Business 资料

工具顺序:

  1. WHATSAPP_GET_BUSINESS_PROFILE - 获取商业资料详情[可选]
  2. WHATSAPP_GET_PHONE_NUMBERS - 列出已注册的电话号码[可选]
  3. WHATSAPP_GET_PHONE_NUMBER - 获取特定号码的详情[可选]
  4. WHATSAPP_CREATE_MESSAGE_TEMPLATE - 创建新模板[可选]
  5. WHATSAPP_GET_MESSAGE_TEMPLATES - 列出所有模板[可选]

关键参数:

  • phone_number_id:商业电话号码 ID
  • template_name:新模板的名称
  • category:模板类别(MARKETING、UTILITY、AUTHENTICATION)
  • language:模板语言代码

注意事项:

  • 新模板必须经过 Meta 审核后才能使用
  • 模板名称必须使用小写字母和下划线(不能有空格)
  • 类别会影响定价和审批标准
  • 模板的标题、正文和按钮都必须遵循特定格式要求
6. 分享联系人

使用时机:用户想通过 WhatsApp 发送联系人信息

工具顺序:

  1. WHATSAPP_SEND_CONTACTS - 发送联系人卡片[必需]

关键参数:

  • to:收件人的电话号码
  • contacts:联系人对象数组,包含姓名、电话和电子邮件信息

注意事项:

  • 联系人对象必须遵循 WhatsApp Business API 联系人架构
  • 每位联系人都必须至少填写姓名字段
  • 联系人电话号码应包含国家代码

常见模式

24 小时消息窗口
  • 客户必须先给你发消息,才能开启对话窗口
  • 在客户发送最后一条消息后的 24 小时内,你可以发送自由格式消息
  • 24 小时后,只能发送已获批准的模板消息
  • 模板消息可以重新开启对话窗口
电话号码解析
1. Call WHATSAPP_GET_PHONE_NUMBERS
2. Extract phone_number_id for your business number
3. Use phone_number_id in all send operations
媒体上传流程
1. Call WHATSAPP_UPLOAD_MEDIA with the file
2. Extract media_id from response
3. Call WHATSAPP_SEND_MEDIA_BY_ID with media_id
4. OR use WHATSAPP_SEND_MEDIA with a public URL directly

已知注意事项

电话号码格式:

  • 始终使用 E.164 格式:+[国家代码][号码](例如,'+14155551234')
  • 不要包含连字符、空格或圆括号
  • 必须包含国家代码;否则本地号码将无法使用

消息限制:

  • 在 24 小时窗口之外,由企业发起的消息必须使用模板
  • 模板消息按对话收费
  • 每个电话号码和每个账户都受速率限制

媒体处理:

  • 上传的媒体会过期;请在上传后尽快使用
  • 媒体 URL 必须是可公开访问的 HTTPS 地址
  • 贴纸有特定要求(WebP 格式,512x512 像素)

模板管理:

  • 模板审核可能需要长达 24 小时
  • 被拒绝的模板需要修正后重新提交
  • 模板变量使用双花括号:{{1}}、{{2}} 等

快速参考

任务工具标识关键参数
发送消息WHATSAPP_SEND_MESSAGEto, body
发送模板WHATSAPP_SEND_TEMPLATE_MESSAGEtemplate_name, to, language_code
上传媒体WHATSAPP_UPLOAD_MEDIA(file params)
按 ID 发送媒体WHATSAPP_SEND_MEDIA_BY_IDmedia_id, to, type
按 URL 发送媒体WHATSAPP_SEND_MEDIAmedia_url, to, type
回复消息WHATSAPP_SEND_REPLYmessage_id, to, body
发送联系人WHATSAPP_SEND_CONTACTSto, contacts
获取媒体WHATSAPP_GET_MEDIAmedia_id
列出电话号码WHATSAPP_GET_PHONE_NUMBERS(none)
获取电话号码WHATSAPP_GET_PHONE_NUMBERphone_number_id
获取企业资料WHATSAPP_GET_BUSINESS_PROFILEphone_number_id
创建模板WHATSAPP_CREATE_MESSAGE_TEMPLATEtemplate_name, category, language
列出模板WHATSAPP_GET_MESSAGE_TEMPLATES(none)
检查模板状态WHATSAPP_GET_TEMPLATE_STATUStemplate_id

由 Composio 提供支持

评论

支持 Markdown