我正在尝试使用sendMessageHTML解析向用户发送彩色文本消息作为回复.
bot.sendMessage(update.message.chat_id, "<span style=\"color:blue\">foo</span>", telegram.ParseMode.HTML)
Run Code Online (Sandbox Code Playgroud)
发送<span style="color:blue">foo</span>不起作用,因为span不支持:
错误请求:无法解析消息文本:字节偏移0(400)处不支持的开始标记"span"
我正在使用python-telegram-botv.4.0.3.
还有另外一种方法吗?
使用python-telegram-bot包装器可以使用多个回调查询处理程序吗?
我想拥有多个独特的处理程序,但据我所知,只能有一个.这意味着我必须根据我在启动消息文本上显示的内联键盘.
有什么我想念的吗?
我正在使用python-telegram-bot库在 Python 中编写一个机器人,该机器人将 URL 发送到该机器人是管理员的通道中。
现在,我想让机器人读取最后 5 条消息(我并不关心数字,因为我只需要阅读聊天中的消息)并将它们存储到代码中的列表中进一步阐述。
我已经让我的机器人使用:
bot = telegram.Bot(token='mytoken')
bot.sendMessage(chat_id='@mychatid', text=entry.link)
Run Code Online (Sandbox Code Playgroud)
但我在 python-telegram-bot 库中找不到一个bot.getLastMessage或某种类。bot.getMessage
如果还没有书面类可以做到这一点,我如何通过 Telegram API 来实现它,因为我在 API 实现方面还是个初学者?
谢谢。
python telegram python-telegram-bot telegram-bot telegram-api
我正在尝试创建一个电报机器人。我试图执行的代码是:
from telegram import ParseMode
Run Code Online (Sandbox Code Playgroud)
但它抛出了这个错误:
ImportError: cannot import name 'ParseMode' from 'telegram'
(C:\ProgramData\Anaconda3\lib\site-packages\telegram\__init__.py)
Run Code Online (Sandbox Code Playgroud)
您能告诉我如何修复这个错误吗?
最近,Telegram 在 Bot API 版本 6.3 中添加了对组中主题的支持,并将此支持添加到 python-telegram-bot 版本 13.15 中(请查找更改日志https://docs.python-telegram-bot.org/en/stable/changelog.html)
目前尚不清楚如何获取已启用主题的 Grpups 中主题的主题 ID (message_thread_id)。
有什么建议吗?
我正在尝试找到一种方法来获取电报群聊的主题 id。请注意,我说的是message_thread_id,请不要与chat_id混淆。
我有一个电报机器人(用 python 开发),我想通过它从我电脑中的图像发送/上传照片。
所以我应该通过多部分表单数据来做。
但我不知道怎么做。我也没有在 Internet 和电报文档上找到有用的资源。
我试图通过下面的代码来做到这一点。但这是错误的
data = {'chat_id', chat_id}
files = {'photo': open("./saved/{}.jpg".format(user_id), 'rb')}
status = requests.post("https://api.telegram.org/bot<TOKEN>/sendPhoto",data=data, files=files)
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
我想写一个电报机器人来保存照片。这是我的代码,但它不起作用。我不知道我的问题是什么?
def image_handler(bot, update):
file = bot.getFile(update.message.photo.file_id)
print ("file_id: " + str(update.message.photo.file_id))
file.download('image.jpg')
updater.dispatcher.add_handler(MessageHandler(Filters.photo, image_handler))
updater.start_polling()
updater.idle()
Run Code Online (Sandbox Code Playgroud)
请帮我解决我的问题。
我与python-telegram-botBotFather机器人合作并尝试构建嵌套菜单系统.例如,您有一个通用的机器人菜单

您可以在其中选择"编辑机器人"并获取新的相应菜单

可以选择返回上一个菜单.
我尝试用代码实现:
# main menu
def start(bot, update):
menu_main = [[InlineKeyboardButton('Option 1', callback_data='m1')],
[InlineKeyboardButton('Option 2', callback_data='m2')],
[InlineKeyboardButton('Option 3', callback_data='m3')]]
reply_markup = InlineKeyboardMarkup(menu_main)
update.message.reply_text('Choose the option:', reply_markup=reply_markup)
# all other menus
def menu_actions(bot, update):
query = update.callback_query
if query.data == 'm1':
# first submenu
menu_1 = [[InlineKeyboardButton('Submenu 1-1', callback_data='m1_1')],
[InlineKeyboardButton('Submenu 1-2', callback_data='m1_2')]]
reply_markup = InlineKeyboardMarkup(menu_1)
bot.edit_message_text(chat_id=query.message.chat_id,
message_id=query.message.message_id,
text='Choose the option:',
reply_markup=reply_markup)
elif query.data == 'm2':
# second submenu
# first submenu
menu_2 = [[InlineKeyboardButton('Submenu 2-1', callback_data='m2_1')],
[InlineKeyboardButton('Submenu …Run Code Online (Sandbox Code Playgroud) 我做了一个Telegram机器人,它的工作之一就是从音频文件创建样本。现在,对于发送给它的大多数音频而言,样本都很好。像这样的东西:
但是,对于某些音频,样本看起来有些奇怪:
如您所见,此文件中的波未显示!(我可以向您保证声音不是空的)
为了创建示例,我使用pydub(谢谢James!)。这是我创建示例的部分:
song = AudioSegment.from_mp3('song.mp3')
sliced = song[start*1000:end*1000]
sliced.export('song.ogg', format='ogg', parameters=["-acodec", "libopus"])
Run Code Online (Sandbox Code Playgroud)
然后使用bot.send_voice方法发送样本。像这样:
bot.send_voice(
chat_id=update.message.chat.id,
voice=open('song.ogg', 'rb'),
caption=settings.caption,
parse_mode=ParseMode.MARKDOWN,
timeout=1000
)
Run Code Online (Sandbox Code Playgroud)
Telegram Bot API的文档说:
如果希望Telegram客户端将文件显示为可播放的语音消息,请使用此方法发送音频文件。为此,您的音频必须位于使用OPUS编码的.ogg文件中(其他格式可能以音频或文档的形式发送)。
这就是为什么在这行代码中:
sliced.export('song.ogg', format='ogg', parameters=["-acodec", "libopus"])
Run Code Online (Sandbox Code Playgroud)
我用过parameters=["-acodec", "libopus"]。
谁能告诉我我在做什么错?提前致谢!
我正在尝试使用 Telegram API 的send_photo()方法在带有机器人的频道中发送消息。它需要一个标题参数(类型String),但我无法通过parse_mode='HTML'参数格式化它...
如果我使用这样的东西:
send_photo(chat_id, photo, caption="<b>Some text</b>", parse_mode='HTML')
Run Code Online (Sandbox Code Playgroud)
它发送消息但没有任何格式。有人知道为什么吗?谢谢
python ×7
telegram ×6
telegram-bot ×4
python-3.x ×3
bots ×2
audio ×1
menu ×1
photo ×1
pydub ×1
telegram-api ×1