Bottender项目:Messenger渠道消息发送全指南

Bottender项目:Messenger渠道消息发送全指南

bottender ⚡️ A framework for building conversational user interfaces. bottender 项目地址: https://gitcode.com/gh_mirrors/bo/bottender

引言

在当今数字化时代,Messenger已成为企业与客户沟通的重要渠道之一。Yoctol/bottender作为一个强大的聊天机器人框架,为开发者提供了丰富的Messenger消息发送功能。本文将全面介绍如何在Bottender项目中高效地发送各类Messenger消息,帮助开发者构建更优质的聊天体验。

基础消息类型

文本消息

文本消息是最基础也是最常用的消息类型,适用于传递简单信息:

async function SendHi(context) {
  await context.sendText('您好!有什么可以帮您的吗?');
}

文本消息虽然简单,但可以承载动态数据,如股票价格、天气信息等,是大多数对话的基础。

富媒体消息

富媒体消息包括图片、视频、音频和文件,能显著提升用户体验。Bottender提供了四种发送方式:

1. 通过URL发送(适合原型开发)

await context.sendImage('https://example.com/promotion.jpg');

2. 使用附件ID(生产环境推荐)

await context.sendImage({ attachmentId: '<ATTACHMENT_ID>' });

3. 通过文件流发送

const fs = require('fs');
await context.sendImage(fs.createReadStream('promotion.jpg'));

4. 通过Buffer发送

await context.sendImage(imageBuffer, { filename: 'promotion.jpg' });

生产环境建议:使用附件ID方式,可充分利用Facebook的缓存机制,提升加载速度。

模板消息

模板消息提供结构化交互体验,是提升用户参与度的利器。

通用模板(Generic Template)

适合展示产品目录等内容:

await context.sendGenericTemplate([
  {
    title: "欢迎光临数码商城",
    imageUrl: 'https://example.com/products.png',
    subtitle: "最新科技产品一网打尽",
    buttons: [
      {
        type: 'postback',
        title: '查看详情',
        payload: 'PRODUCT_DETAILS',
      },
    ],
  },
]);

按钮模板(Button Template)

简化版通用模板,不含图片:

await context.sendButtonTemplate('请选择您需要的服务', [
  {
    type: 'postback',
    title: '客服咨询',
    payload: 'CUSTOMER_SERVICE',
  },
]);

收据模板(Receipt Template)

专为订单确认设计:

await context.sendReceiptTemplate({
  recipientName: '张三',
  orderNumber: 'ORD123456',
  elements: [
    {
      title: '智能手机',
      quantity: 1,
      price: 5999,
      currency: 'CNY',
    },
  ],
  summary: {
    totalCost: 5999,
  },
});

快速回复(Quick Reply)

快速回复是引导用户互动的有效工具,有三种类型:

文本快速回复

await context.sendText('请选择您的问题类型', {
  quickReplies: [
    {
      contentType: 'text',
      title: '订单查询',
      payload: 'ORDER_QUERY',
    },
  ],
});

用户手机号快速回复

await context.sendText('请提供您的联系方式', {
  quickReplies: [
    {
      contentType: 'user_phone_number',
    },
  ],
});

用户邮箱快速回复

await context.sendText('请输入您的邮箱', {
  quickReplies: [
    {
      contentType: 'user_email',
    },
  ],
});

高级功能

角色功能(Persona)

当机器人需要模拟不同身份时:

await context.sendText('这是客服代表为您服务', {
  personaId: '<PERSONA_ID>',
});

速率限制

重要注意事项:

  • 默认速率限制:200 * Messenger受众总数/24小时
  • 高流量场景建议:将突发请求分散处理
  • 大页面推荐发送速率:每秒不超过250次请求

最佳实践建议

  1. 消息类型选择

    • 简单信息 → 文本消息
    • 产品展示 → 通用模板
    • 用户引导 → 快速回复
    • 订单确认 → 收据模板
  2. 性能优化

    • 生产环境使用附件ID而非URL
    • 频繁使用的媒体文件提前上传
  3. 用户体验

    • 保持消息简洁
    • 合理使用快速回复引导用户
    • 重要操作提供明确反馈

通过合理运用Bottender提供的这些消息发送功能,开发者可以构建出既美观又实用的Messenger聊天机器人,有效提升用户参与度和满意度。

bottender ⚡️ A framework for building conversational user interfaces. bottender 项目地址: https://gitcode.com/gh_mirrors/bo/bottender

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

裘旻烁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值