Bottender项目实战:即时通讯机器人消息发送全攻略
引言
在构建即时通讯机器人时,消息发送是最基础也是最重要的功能之一。本文将全面介绍如何使用Bottender框架实现即时通讯机器人的各种消息发送功能,从简单的文本消息到复杂的富媒体消息,再到交互式键盘和消息更新操作。
基础文本消息发送
简单文本发送
使用sendMessage
方法可以发送最基本的文本消息:
await context.sendMessage('你好,世界!');
消息格式设置
即时通讯平台支持两种富文本格式:Markdown和HTML。
Markdown格式
await context.sendMessage('*加粗* _斜体_ [链接](http://example.com)', {
parseMode: 'markdown'
});
支持的Markdown语法包括:
*加粗*
_斜体_
[链接文字](URL)
行内代码
多行代码块
HTML格式
await context.sendMessage('<b>加粗</b> <i>斜体</i> <a href="http://example.com">链接</a>', {
parseMode: 'html'
});
支持的HTML标签包括:
<b>
,<strong>
加粗<i>
,<em>
斜体<a href="">
链接<code>
行内代码<pre>
多行代码块
富媒体消息发送
图片发送
await context.sendPhoto('https://example.com/image.jpg');
音频发送
await context.sendAudio('https://example.com/audio.mp3');
文件发送
await context.sendDocument('https://example.com/file.pdf');
视频发送
await context.sendVideo('https://example.com/video.mp4');
注意事项
- 文件大小限制:目前平台支持最大50MB的文件
- 视频格式:建议使用MP4格式
- 音频格式:语音消息需要使用OGG格式
交互式消息设计
内联键盘
内联键盘直接显示在消息下方,适合提供即时操作:
const replyMarkup = {
inlineKeyboard: [
[
{ text: '按钮1', callbackData: 'action1' },
{ text: '按钮2', url: 'https://example.com' }
]
]
};
await context.sendMessage('请选择操作:', { replyMarkup });
回复键盘
回复键盘会替换用户的标准键盘:
const replyMarkup = {
keyboard: [
['选项1', '选项2'],
['选项3', '选项4']
],
oneTimeKeyboard: true // 使用后自动隐藏
};
await context.sendMessage('请选择一个选项:', { replyMarkup });
消息管理功能
消息编辑
const sentMessage = await context.sendMessage('初始消息');
await context.editMessageText(sentMessage.messageId, '更新后的消息');
消息删除
const sentMessage = await context.sendMessage('即将被删除的消息');
await context.deleteMessage(sentMessage.messageId);
高级功能
发送位置
await context.sendLocation({
latitude: 25.0330,
longitude: 121.5654
});
发送投票
await context.sendPoll('你最喜欢的编程语言是?', [
'JavaScript',
'Python',
'Go',
'Rust'
]);
发送发票(支付)
await context.sendInvoice({
title: '高级会员',
description: '一个月高级会员订阅',
payload: 'premium_sub_1m',
providerToken: 'YOUR_PAYMENT_TOKEN',
currency: 'USD',
prices: [{ label: '订阅费', amount: 999 }]
});
性能优化建议
- 速率限制:平台限制每秒最多30条消息
- 大文件处理:考虑使用文件压缩或分片发送
- 消息缓存:对频繁发送的消息进行本地缓存
- 错误处理:实现重试机制处理429错误
结语
通过Bottender框架,开发者可以轻松实现即时通讯机器人的各种消息交互功能。从简单的文本到复杂的富媒体,再到交互式键盘和消息管理,Bottender提供了简洁而强大的API。掌握这些功能后,你将能够构建出功能丰富、用户体验优秀的即时通讯机器人。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考