Bottender项目中的即时通讯消息发送全指南

Bottender项目中的即时通讯消息发送全指南

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

引言

在构建即时通讯机器人时,消息发送是最基础也是最重要的功能之一。Bottender作为一个优秀的机器人框架,为开发者提供了简洁而强大的API来处理即时通讯消息。本文将全面介绍如何使用Bottender发送各种类型的即时通讯消息,包括文本、富媒体消息,以及如何添加交互式按钮等高级功能。

即时通讯机器人消息基础

即时通讯机器人的消息系统基于两个核心概念:

  1. 消息(Messages) - 支持多种格式,包括文本、图片、音频、视频等
  2. 回复标记(Reply Markup) - 附加在消息下方的交互元素,如按钮

这两者都是可更新的,这意味着发送后可以修改内容或样式。

文本消息发送

基本文本发送

await context.sendMessage('你好,世界!');

使用Markdown格式化

即时通讯平台支持Markdown语法来美化文本:

await context.sendMessage('*加粗* _斜体_ `代码`', {
  parseMode: 'markdown'
});

支持的Markdown元素包括:

  • *加粗*_加粗_
  • _斜体_*斜体*
  • `行内代码`
  • 多行代码块
    

使用HTML格式化

对于更复杂的格式,可以使用HTML:

await context.sendMessage('<b>粗体</b> <i>斜体</i> <a href="http://example.com">链接</a>', {
  parseMode: 'html'
});

富媒体消息发送

图片发送

await context.sendPhoto('https://example.com/image.jpg');

音频发送

await context.sendAudio('https://example.com/audio.mp3');

文档发送

可以发送各种类型的文件,最大50MB:

await context.sendDocument('https://example.com/file.pdf');

视频发送

await context.sendVideo('https://example.com/video.mp4');

贴纸发送

即时通讯平台支持静态WEBP和动态TGS格式的贴纸:

await context.sendSticker('CAADAgADQAADyIsGAAE7MpzFPFQX5QI');

位置共享

await context.sendLocation({
  latitude: 25.0330,
  longitude: 121.5654
});

交互式回复标记

内联键盘

内联键盘直接附加在消息下方:

const replyMarkup = {
  inlineKeyboard: [
    [
      { text: '选项1', callbackData: 'opt1' },
      { text: '选项2', url: 'https://example.com' }
    ]
  ]
};

await context.sendMessage('请选择:', { replyMarkup });

回复键盘

回复键盘会替换用户的默认键盘:

const replyMarkup = {
  keyboard: [
    ['选项1', '选项2'],
    ['选项3', '选项4']
  ],
  oneTimeKeyboard: true // 使用一次后消失
};

await context.sendMessage('请选择:', { replyMarkup });

消息更新与删除

更新文本消息

const response = await context.sendMessage('初始消息');
await context.editMessageText(response.messageId, '更新后的消息');

更新媒体消息

const response = await context.sendPhoto('https://example.com/old.jpg');
await context.editMessageMedia(response.messageId, {
  type: 'photo',
  media: 'https://example.com/new.jpg'
});

删除消息

const response = await context.sendMessage('稍后删除的消息');
await context.deleteMessage(response.messageId);

高级功能

发送投票

await context.sendPoll('你最喜欢的编程语言是?', [
  'JavaScript',
  'Python',
  'Go',
  'Rust'
]);

发送聊天动作

让机器人显示"正在输入"等状态:

await context.sendChatAction('typing'); // 显示"正在输入"

可用动作包括:

  • upload_photo - 上传照片
  • record_video - 录制视频
  • upload_audio - 上传音频

性能与限制

即时通讯平台对机器人消息发送有以下限制:

  • 每秒最多向30个不同用户发送消息
  • 避免短时间内发送大量消息,否则会收到429错误
  • 媒体文件大小限制为50MB

结语

通过Bottender框架,开发者可以轻松实现即时通讯机器人的各种消息交互功能。本文涵盖了从基础文本到富媒体消息,再到交互式按钮和消息更新的完整指南。掌握这些功能后,你将能够构建出功能丰富、用户体验优秀的即时通讯机器人。

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
发出的红包

打赏作者

郭蔷意Ward

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

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

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

打赏作者

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

抵扣说明:

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

余额充值