Bottender项目中的Messenger消息发送技术详解
引言
在当今数字化时代,Messenger已成为企业与客户之间最流行的沟通渠道之一。Yoctol/bottender作为一个优秀的聊天机器人框架,为开发者提供了丰富的Messenger消息发送功能。本文将深入解析如何在Bottender项目中高效地发送各种类型的Messenger消息。
基础消息类型
文本消息
文本消息是最基础也是最常用的消息类型,适合传递简单信息:
async function SendHi(context) {
await context.sendText('您好!欢迎使用我们的服务');
}
文本消息的优势在于:
- 简单易用,开发成本低
- 支持动态内容插入
- 在所有设备上显示一致
富媒体消息
富媒体消息能显著提升用户体验,主要包括图片、视频、音频和文件四种类型。
四种发送方式对比
| 方式 | 优点 | 缺点 | 适用场景 | |------|------|------|---------| | URL发送 | 实现简单 | 加载速度慢 | 原型开发阶段 | | 附件ID | 加载速度快 | 需要预上传 | 生产环境 | | 文件流 | 本地文件处理 | 需要文件系统访问 | 本地文件发送 | | 缓冲区 | 灵活处理二进制 | 需要内存管理 | 动态生成内容 |
推荐生产环境使用附件ID方式:
// 先上传获取attachmentId
await context.sendImage({ attachmentId: '123456789' });
模板消息
模板消息是Messenger平台提供的结构化消息格式,能创建丰富的交互体验。
通用模板(Generic Template)
通用模板适合展示商品列表、服务选项等:
await context.sendGenericTemplate([
{
title: "产品名称",
imageUrl: '产品图片URL',
subtitle: "产品描述",
buttons: [
{
type: 'postback',
title: '立即购买',
payload: 'BUY_NOW',
},
],
},
]);
按钮模板(Button Template)
当不需要展示图片时,按钮模板是更简洁的选择:
await context.sendButtonTemplate('请选择您需要的服务:', [
{
type: 'postback',
title: '客服咨询',
payload: 'CUSTOMER_SERVICE',
},
]);
收据模板(Receipt Template)
电商场景必备的订单确认模板:
await context.sendReceiptTemplate({
recipientName: '客户姓名',
orderNumber: '订单号',
currency: 'CNY',
paymentMethod: '支付宝',
elements: [
{
title: '商品名称',
quantity: 1,
price: 100,
currency: 'CNY',
},
],
summary: {
subtotal: 100,
totalCost: 100,
},
});
快速回复(Quick Reply)
快速回复是提升对话流畅度的关键功能。
文本快速回复
await context.sendText('请选择您的偏好:', {
quickReplies: [
{
contentType: 'text',
title: '红色',
payload: 'COLOR_RED',
},
{
contentType: 'text',
title: '蓝色',
payload: 'COLOR_BLUE',
},
],
});
用户信息快速回复
获取用户联系信息的便捷方式:
// 获取用户手机号
await context.sendText('请分享您的联系方式:', {
quickReplies: [
{
contentType: 'user_phone_number',
},
],
});
// 获取用户邮箱
await context.sendText('请分享您的邮箱:', {
quickReplies: [
{
contentType: 'user_email',
},
],
});
高级功能
角色功能(Persona)
当需要区分自动回复和人工客服时:
await context.sendText('这是自动回复消息', {
personaId: 'BOT_PERSONA_ID',
});
await context.sendText('这是人工客服消息', {
personaId: 'AGENT_PERSONA_ID',
});
速率限制
重要注意事项:
- 默认速率限制:200 * Messenger受众数量/24小时
- 突发流量建议:不超过250请求/秒
- 应对策略:实现消息队列和流量控制
最佳实践建议
- 消息组合:结合文本、富媒体和模板消息创建丰富体验
- 性能优化:生产环境使用附件ID发送富媒体
- 用户引导:合理使用快速回复降低用户输入成本
- 品牌一致性:通过Persona功能保持品牌形象
- 流量规划:大型活动前评估并测试速率限制
通过Bottender框架的这些功能,开发者可以构建出专业级的Messenger聊天机器人,提供出色的用户体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考