如何用Bot在频道里发送一个带“点赞”和“踩”按钮的帖子?
4 个回答
Telegram机器人可发送带按钮的文章。你需要:
1. 利用BotFather设置机器人,获取Token。
2. 发送频道消息时调用API的`sendPoll`方法,选择"regular"类型;
3.
参数里填入问题、选项(赞成/反对)以及是否可重复投票;
4. 投票生成后用户就可以进行互动。
只能通过API创建,不能通过网页后台创建,用Python的`python-telegram-bot`库实现会比较方便。
1. 使用TG官方库或者框架构建机器人;
2. 发送时添加 inline_keyboard 参数;
3. 设置按钮文字分别为“👍 赞”和“👎 踩”;
原文内容:
“三无”:没有营业执照、没有卫生许可证、没有健康证。
“三有”:有证照、有消毒、有健康。
_object
_objectassistant
“三无”:无营业执照、无卫生许可证、 无健康证。
“三有”:有证照、有消毒、有健康。
4. 每个按钮对应不同的 callback_data
5. 监听回调事件处理投票逻辑。
建议在实际开发中用 Python 的 aiogram 或 Go 的 go-telegram-bot-api 等成熟框架,这样会方便很多。
Telegram机器人的帖子带按钮需要“InlineKeyboardMarkup”,可以用Python的python-telegram-bot库或Node.js 的Telegraf库。
具体方法如下:
1. 构建一个包含“赞”和“踩”按钮的键盘布局
2. 发送消息时绑定键盘
3. 监听用户按钮点击事件。
4. 按点击类型处理对应逻辑
代码实现大致如下:
bot.sendMessage(chat_id, "你觉得这个帖子怎么样?", {
reply_markup: JSON.stringify({
inline_keyboard: [[
{
text: "好",
callback_data: "like"
},
{
text: "差",
callback_data: "dislike"
},
{
text: "一般",
callback_data: "normal"
}
]]
})
})
reply_markup: {
_
[
[
[
{
text
,
callback\_data
}
,
{
text
,
callback\_data
}
],
[
{
text
,
callback\_data
}
],
[
{
text
,
callback\_data
}
,
{
text
,
callback\_data
}
]
]
[['👍 赞', 'upvote'], ['👎 踩', 'downvote']]
]
}
})
通过监听callback_query事件获取用户反馈(不同语言的实现方式类似,本质都是构造一个inline_keyboard对象)。开发中需要注意并发请求处理和状态的存储,交互式按钮能够有效提升频道的参与度,但是注意不要过多影响正常阅读。现在知道怎么做了吗?