You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用whatsapp-web.js库删除手机聊天失败的技术求助

解决whatsapp-web.js 1.30.0删除会话后手机端未同步的问题

你遇到的问题是因为chat.delete()方法在whatsapp-web.js 1.x版本中仅删除Web客户端本地的会话缓存,不会触发与手机端的同步操作,导致手机端仍保留会话条目。

核心修复方案

直接调用WhatsApp Web原生的会话删除API,通过Puppeteer执行浏览器端的原生方法,触发完整的跨设备同步流程。

修改后的完整代码:

async function deleteAllChats() {
    try {
        const chats = await client.getChats();
        for (const chat of chats) {
            if (!chat.isGroup) {
                // 调用WhatsApp Web原生API删除会话,同步至手机端
                await client.pupPage.evaluate((chatId) => {
                    return window.WA.deleteChat(chatId);
                }, chat.id._serialized);
                console.log(`Removed chat with ${chat.name || chat.id.user}`);
            }
        }
        console.log('All chats removed.');
    } catch (err) {
        console.error('Error during chat deleting:', err);
    }   
}

关键说明

  • 移除了chat.clearMessages()和原chat.delete():原生WA.deleteChat()会同时删除会话内的消息和会话条目,无需额外清空操作
  • chat.id._serialized是WhatsApp内部识别会话的唯一标识,必须传入原生API
  • client.pupPage是whatsapp-web.js暴露的Puppeteer页面实例,用于执行浏览器端代码

额外注意事项

  • 操作前务必测试:先选择单个测试会话验证功能,避免误删重要内容
  • 若window.WA不可用,可尝试window.WhatsApp:不同版本的WhatsApp Web全局对象命名可能有差异,可通过浏览器控制台确认
  • 确保服务器环境正常:Ubuntu 22.04上需保证Puppeteer依赖完整(如libnss3、libxss1等),避免执行页面代码时出错

内容的提问来源于stack exchange,提问作者Angelo Monteleone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:52:18