Bottender项目中的即时通讯消息发送全指南
引言
在构建即时通讯机器人时,消息发送是最基础也是最重要的功能之一。Bottender作为一个优秀的机器人框架,为开发者提供了简洁而强大的API来处理即时通讯消息。本文将全面介绍如何使用Bottender发送各种类型的即时通讯消息,包括文本、富媒体消息,以及如何添加交互式按钮等高级功能。
即时通讯机器人消息基础
即时通讯机器人的消息系统基于两个核心概念:
- 消息(Messages) - 支持多种格式,包括文本、图片、音频、视频等
- 回复标记(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框架,开发者可以轻松实现即时通讯机器人的各种消息交互功能。本文涵盖了从基础文本到富媒体消息,再到交互式按钮和消息更新的完整指南。掌握这些功能后,你将能够构建出功能丰富、用户体验优秀的即时通讯机器人。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考