如何通过代码调用WhatsApp API发送文件?JavaScript端有哪些可行实现方案?
WhatsApp JS环境发送多媒体文件解决方案
你之前使用的https://wa.me/<Phone number>?text=Hi属于公开跳转分享接口,仅支持传递文本参数,无法携带图片、音频、文档等文件类数据,要实现多媒体文件发送可以参考以下方案:
1. 官方方案:WhatsApp Business Platform
这是Meta官方推出的商业级API,合规稳定,支持所有常见多媒体类型(图片、音频、文档、视频、位置、互动消息等)发送,可直接在JavaScript/Node.js环境调用。
使用逻辑:
- 先在Meta开发者平台申请开通WhatsApp Business账号,获取访问令牌、发送者手机号ID等鉴权参数
- 调用官方消息发送接口,通过
type参数指定消息类型为对应的多媒体类型,传入文件的公网访问地址或者直接以form-data形式上传文件二进制流即可
Node.js调用示例(以发送图片为例):
const axios = require('axios'); const FormData = require('form-data'); const fs = require('fs'); async function sendWhatsAppImage(recipientPhone, imagePath) { const form = new FormData(); form.append('messaging_product', 'whatsapp'); form.append('to', recipientPhone); form.append('type', 'image'); form.append('image', fs.createReadStream(imagePath)); const config = { headers: { Authorization: 'Bearer 你的官方访问令牌', ...form.getHeaders() } }; await axios.post('https://graph.facebook.com/v18.0/你的发信号码ID/messages', form, config); }
2. 第三方封装服务
如果不想自行处理官方接口的鉴权、格式适配、回调处理等逻辑,可以选择封装好的第三方WhatsApp消息服务,这类服务一般都提供了开箱即用的JS SDK,只需要传入接收方号码、文件地址/二进制流即可完成发送,降低开发成本。
注意事项
- 个人版WhatsApp没有公开的官方发送API,所有基于爬虫、协议破解的非官方个人号发送方案都违反WhatsApp用户协议,存在账号被永久封禁的风险,不建议使用
- 所有合法的文件发送接口都要求文件大小符合WhatsApp的限制要求,常见类型文件上限一般在100MB以内
- 发送给未添加你为联系人的用户时,需要先获得用户的主动发起对话授权,否则消息会被拦截
内容的提问来源于stack exchange,提问作者Tanishq SIngh Anand
相关产品推荐
相关产品推荐

