构建人工智能驱动的 WhatsApp 聊天机器人:分步指南
已发表: 2024-03-22概括:
了解如何利用 Node.js 和 OpenAI 的功能逐步构建由 AI 驱动的 WhatsApp 聊天机器人。 从设置 Meta 企业帐户到集成 WhatsApp API 和 OpenAI,本指南使企业能够简化客户交互并释放自动化通信的新可能性。
在当今的数字时代,利用人工智能 (AI) 的力量来增强客户互动对于努力保持市场领先地位的企业至关重要。 WhatsApp 是全球使用最广泛的消息平台之一,为企业提供了有效与受众互动的绝佳机会。 进入人工智能驱动的 WhatsApp 聊天机器人领域。 这些虚拟助理正在彻底改变客户服务,提供全天候支持并简化沟通流程。
无论您是新兴的初创公司还是成熟的企业,通过正确的方法都可以使开发步骤变得更加简单。 在这份综合指南中,我们将探讨将 WhatsApp Business API 与 Node.js 应用程序集成所需的基本原则、分步过程以及关键注意事项。 利用 OpenAI 自然语言处理功能的力量,我们将打造与您的受众产生共鸣的无缝用户体验。
从设置 WhatsApp Business 帐户到将 OpenAI 的 API 与 Node.js 代码集成,请跟随我们揭开流程的神秘面纱,让您能够构建自己的 AI 驱动解决方案。 这一进入人工智能驱动的对话代理领域的变革之旅并不是您必须独自承担的。 人工智能聊天机器人开发公司可以作为您值得信赖的合作伙伴,一路提供宝贵的见解和专业知识。 让我们一起踏上这激动人心的探险之旅吧。
第 1 步:设置 Meta (Facebook) 企业帐户和应用程序
- 首先创建一个元企业帐户(点击此处)。
填写详细信息并单击“提交”。
2. 创建一个新的 Meta (Facebook) 应用程序(单击此处)。
- (登录)您的 Meta (Facebook) 开发者帐户。
登录后,点击“我的应用”
3.现在点击“创建应用程序”
4. 选择“其他”,然后单击“下一步”。
5. 选择应用程序类型:“商业”,然后单击“下一步”。
6. 提供应用程序详细信息,然后单击“创建应用程序”
第 2 步:设置 Meta (Facebook) 应用程序以进行 WhatsApp 集成
1. 将 WhatsApp 添加到您的 Meta (Facebook) 应用程序。
- 在“开发人员仪表板”中,选择您的应用程序。
- 在应用程序的仪表板选项卡中找到“将产品添加到您的应用程序”。
- 选择“WhatsApp”进行设置。
- 选择您的元 (Facebook) 企业帐户
- 从侧边栏导航至应用程序设置 > 基本
- 保存更改。
- 将应用程序模式设置为实时
第 3 步:生成 WhatsApp 令牌
要获取永久 WhatsApp 访问令牌,请执行 1 至 3 个步骤:
1. 创建“系统用户”:
- 访问元商务套件。
- 在左上角的下拉菜单中找到您的企业帐户,然后单击其设置(齿轮)图标。
- 单击业务设置。
- 转至用户 > 系统用户。
- 添加管理员系统用户。
2. 添加资产。
- 创建系统用户后,单击“添加资产”。
- 导航至“应用程序”>“您的应用程序名称”。
- 选择您的应用程序并授予管理该应用程序的完全控制权。
3. 生成系统用户访问令牌。
- 单击系统用户上的“生成新令牌”按钮。
选择将使用令牌的应用程序并将令牌过期设置为永不。
- 选择“whatsapp_business_messaging”和“whatsapp_business_management”权限。
- 生成令牌。
- 复制访问令牌并安全存储。
4. 为 WhatsApp 添加新的企业号码
- 您可以使用自己的企业号码或使用为您的 WhatsApp 聊天机器人提供的测试号码。
- 在 WhatsApp 开发人员仪表板中,从侧边栏导航至 WhatsApp > API 设置。
- 继续“步骤 5:添加电话号码”,单击“添加电话号码”。
- 在下面的表格中提供所需的详细信息。
- 使用收到的代码验证您的号码。
- 成功添加后,在 API 设置的第 1 步中选择您的电话号码。
5. 添加付款方式
- 要通过 WhatsApp 发送消息,您需要有效的付款方式。 请访问此处了解详细信息。
- 添加您的公司电话号码后,单击“添加付款方式”以解决“缺少有效付款方式”警报。
- 您将被引导至您的 WhatsApp 帐户设置。 点击“付款方式”>“添加企业付款方式”,然后按照提示添加您的卡信息。
6. 测试您的新 WhatsApp 公司号码
- 返回 WhatsApp 开发人员仪表板,导航至 API 设置
- 输入测试“收件人”号码。
- 单击“发送消息”以验证消息发送是否成功。
步骤 4:配置 WhatsApp API Webhook 设置
1. 验证 WhatsApp Webhook 回调。
- 在 WhatsApp 开发人员仪表板中,导航至“配置”。
- 在 Webhook 下,单击编辑
- 现在,我们需要向 WhatsApp 提供实时 Webhook URL 和令牌。 实时 URL 是您的应用程序的 URL,令牌也是从您的端生成的。 在下图中,我添加了 Ngrok URL,因为我的 Node.js 应用程序在 Ngrok 上运行,并且我使用了 UUID 作为令牌。
- 在验证过程中,WhatsApp 向回调 URL 发送 GET 请求以验证中心令牌。 以下用 Next.js(Node.js 框架)编写的代码处理此验证过程。 仅当您的代码发送 200 状态代码作为响应时,验证才会成功,如下所示。
让 hubMode = req.nextUrl.searchParams.get("hub.mode");
让 hubChallenge = req.nextUrl.searchParams.get("hub.challenge");
让 hubToken = req.nextUrl.searchParams.get("hub.verify_token");
//在数据库中查找token
如果 (
hubMode ===“订阅”&&
hubToken ===“<来自.env的值或来自数据库的值>”
){
console.log("验证成功");
返回新的响应(hubChallenge);
}
return new Response("无效凭证", { status: 400 });
}
- 找到“消息”字段并通过选中该框来订阅它。
- 现在我们需要从同一个 WhatsApp 企业帐户获得 WhatsApp 访问令牌和 Facebook 应用程序机密
- 在下图中,您可以看到 Facebook 应用程序的秘密
我们还需要保留以下突出显示的数据
在我们的代码中,我们需要各种标识符,例如访问令牌、应用程序密钥、测试号、电话号码 ID 和企业帐户 ID。 这些标识符帮助我们确定我们正在从谁接收消息以及我们需要向谁发送消息。
步骤5:通过API发送和接收消息
- 在提供的 TypeScript 代码中,我们成功集成了 WhatsApp API 来发送和接收消息。 此外,为了实现我的目标,我还结合了 OpenAI 和定制训练的 AI 模型来响应传入的消息。
- 提供给 WhatsApp 的回调 URL 用于 GET 和 POST 请求。 当消息发送到企业号码时,WhatsApp 会触发此回调 URL 并发送消息以及用户详细信息。 以下代码读取该消息并根据实现的逻辑进行响应。
- POST 函数是处理传入 POST 请求的异步函数。 它首先将传入请求解析为 JSON,并提取用户从 WhatsApp 发送的消息。 如果消息未定义或为空,它将返回状态为 200 的响应,并且不会进一步继续。
- 然后,该函数从请求中检索公司电话号码和发件人的电话号码。
- 然后,该函数准备一个 POST 请求,通过 WhatsApp 将消息发送回用户。 它构造请求的 URL,定义要发送的消息,并设置请求选项,包括方法、标头和正文。
- 然后该函数使用 fetch 函数发送请求。 如果请求成功,它将返回状态为 200 的响应。如果任何时候发生错误,都会将其记录到控制台。
- getResponseNumber 函数是一个辅助函数,用于从传入请求中提取发件人的电话号码。
- 此代码提供了如何将 Node.js 应用程序与 WhatsApp Business API 集成的基本示例,从而允许自动发送和接收消息。
// 一旦用户向机器人提出问题并回复用户,WhatsApp 将触发此发布请求
让 res: any = wait req.json();
让 QuestionFromWhatsapp =
res?.entry?.[0]?.changes?.[0]?.value?.messages?.[0]?.text?.body; // 从whatsapp收到的问题
如果 (
QuestionFromWhatsapp == 未定义 ||
QuestionFromWhatsapp.trim().length <= 0
){
//如果请求只是关于状态,则不要进一步移动
// 返回 NextResponse.json({ message: "已收到" });
返回新的响应(“已收到”,{状态:200});
}
//从响应中获取电话号码id。 该电话号码是公司号码
const 电话号码 ID =
res?.entry?.[0]?.changes?.[0]?.value?.metadata["phone_number_id"];
//此方法将返回收到消息的电话号码
const 响应编号 = getResponseNumber(res);
// 从数据库中获取userId
尝试 {
常量版本=“v18.0”;
//检查是否达到限制
常量电话号码;
const 收件人电话号码 = "+" + 响应号码;
// const accessToken = process.env.WHATSAPPTOKEN
const accessToken = "您从 facebook 获得的令牌";
尝试 {
//------------- 此代码用于向电报发送消息
const url = `https://graph.facebook.com/${version}/${phoneNumberId}/messages`;
// 定义请求体中要发送的数据
常量数据 = {
消息传递产品:“whatsapp”,
收件人类型:“个人”,
至:`${recipientPhoneNumber}`,
类型:“文本”,
文本: {
预览网址:假,
body: "嗨,我是一个聊天机器人,我现在很忙,我会尽快回复你。",
},
};
// 定义获取请求的选项
常量选项 = {
方法:“POST”,
标题:{
“内容类型”:“应用程序/json”,
授权:`不记名${accessToken}`,
},
正文:JSON.stringify(数据),
};
// 使用 fetch 发出 POST 请求
尝试 {
const 响应 = 等待 fetch(url, 选项);
如果(!response.ok){
throw new Error(`HTTP 错误!状态:${response.status}`);
}
const data =等待response.json();
// 根据需要处理数据
} 捕获(错误){
// 根据需要处理错误
控制台.log(错误);
}
返回新的响应(“已收到”,{状态:200});
} 捕获(错误){
console.log("错误", 错误);
}
} catch(错误:任何){
控制台.log(错误);
//在数据库中维护错误日志,以防出现无法处理的错误
}
}
const getResponseNumber = (res: 任意) => {
返回 res?.entry?.[0]?.changes?.[0]?.value?.contacts[0]?.wa_id;
};
结论
在这份综合指南中,我们探讨了将 WhatsApp Business API 与 Node.js 应用程序集成的复杂问题。 从设置 Webhooks 到处理传入消息和发送定制响应,我们介绍了处理访问令牌、应用程序机密、测试号码、电话号码 ID 和企业帐户 ID 等基本步骤。
这种无缝集成不仅使企业能够在 WhatsApp 上实现自动化通信,而且还释放了无数的可能性,无论是制作客户支持机器人、自动化营销工作还是追求个人项目。 当您踏上这段旅程时,请记住这只是一个基础。 WhatsApp Business API 提供了大量附加功能等待探索并集成到您的应用程序中。
当您继续完善人工智能聊天机器人开发工作时,请考虑利用专家的专业知识 人工智能聊天机器人开发公司。 他们的见解和支持可以促进您的进步,确保您的聊天机器人充分发挥潜力。 在您的开发之旅中不断前进时,请务必参阅官方WhatsApp Business API 文档以获取全面、准确的信息。