【问题标题】:How do I send a message to Telegram that includes a button that prompts the user to forward the message?如何向 Telegram 发送包含提示用户转发消息的按钮的消息?
【发布时间】:2017-07-18 09:18:53
【问题描述】:
许多 Telegram 机器人(例如 @youtube)都有一个按钮,您可以点击该按钮来转发机器人发送的消息。当用户单击此按钮时,Telegram 会打开一个联系人列表,让用户选择将消息转发给谁。
如何发送这样的按钮?我能找到的最接近的东西是forwardMessage,但它需要chat_id 目标ID 作为必需参数。但是在用户选择他们想要转发给谁之前,我不会有这个目标 ID。
【问题讨论】:
标签:
telegram
telegram-bot
【解决方案1】:
如果您想将您的内容分享到特定的聊天室,您有两种选择:
选项 1
如果您的机器人启用了inline_mode,您可以通过在所选聊天中打开inline_query 的按钮共享内容。基本上,这就是@youtube bot 的工作方式。要使用此方法,您需要发送带有switch_inline_query 作为字段的内联按钮 (documentation)。
Javascript 示例:
bot.sendMessage(msg.chat.id, 'Share:', {
reply_markup: {
inline_keyboard: [[{
text: 'Share with your friends',
switch_inline_query: 'share'
}]]
}
})
这与我在我的机器人 @livecoinbot 中使用的示例相同,设置一个比特币地址并使用分享按钮。
选项 2
您可以创建一个普通的内联按钮,或者只是在普通消息中发送一个链接,这将提示电报客户端共享内容。以下是你的做法:
https://t.me/share/url?url=[url-to-send-here]&text=[text]
例如:Click here