在whatsapp-web.js中如何向他人发送第三方联系人名片?
whatsapp-web.js 发送第三方联系人名片问题解答
问题1:如何向其他用户发送第三方的联系人名片
你可以通过库内置的sendContactVcard方法实现该需求,具体流程如下:
- 先确定两个核心参数:接收方的带国家码手机号、待发送名片的第三方联系人的带国家码手机号
- 通过
getContactById方法获取第三方联系人的Contact实例,注意:构造联系人ID时使用的手机号必须携带完整国家码,不能带+号前缀,格式为[国家码][手机号]@c.us,例如中国手机号为8613000000000@c.us - 获取接收方的聊天实例,调用实例的
sendContactVcard方法传入联系人实例即可完成发送
示例代码:
const { Client } = require('whatsapp-web.js'); const client = new Client(); // 调用示例:给指定接收方发送第三方联系人名片 async function sendThirdPartyContact(receiverNumber, contactNumber, customName) { // 获取接收方聊天实例 const receiverChat = await client.getChatById(`${receiverNumber}@c.us`); // 获取待发送的联系人实例 const targetContact = await client.getContactById(`${contactNumber}@c.us`); // 可自定义名片显示名称 if (customName) targetContact.name = customName; // 发送名片 await receiverChat.sendContactVcard(targetContact); }
问题2:目标联系人不在本机通讯录时能否正常发送
可以正常发送。
whatsapp-web.js 依赖WhatsApp网页端的原生接口实现能力,发送联系人名片的逻辑仅和你传入的联系人ID有效性有关,和你本机通讯录是否存储该联系人没有任何关联。只要你传入的第三方联系人手机号格式正确、是真实注册过WhatsApp的账号,即使该联系人不在你的本机通讯录中,也可以正常将名片发送给你的通讯录联系人,接收方拿到的名片信息不会有任何缺失。
内容的提问来源于stack exchange,提问作者Adela
相关产品推荐
相关产品推荐

