Разрабатываю бот Telegram, который публикует заданный пользователем текст в канал в виде поста, пытаюсь сделать, чтобы бот после публикации поста, оставлял комментарий в этом же посту.
Делаю следующим образом:
@bot.message_handler(content_types=['photo', 'text'])
def echo(message):
"""отправка"""
if message.chat.id < 0:
return
else:
u = mapUser(message.from_user)
user = fetchUser(u)
if user is False:
return
channel = mrfToChannels[user.MRF]
chat_id = channel.channel_chat_id
commands = ["/start", "/Analytics", "/countusers", "/deleteme", "/deleteuser"]
if message.text in commands:
bot.send_message(message.chat.id,
"<b>ОШИБКА:</b> Отправка <b>команд для бота</b> в канал запрещена.",
parse_mode="HTML")
bot.send_message(message.chat.id,
'''Попробуйте снова по следующей инструкции:\n'''
'''1. Введите команду <b>/start</b>, ожидайте сообщение-приветствие\n'''
'''2. Пишите свое обращение, приклепляйте фото по необходимости''',
parse_mode="HTML")
return
elif message.media_group_id:
if message.media_group_id in mediagroups:
return
mediagroups.append(message.media_group_id)
bot.send_message(message.chat.id,
'''<b>ОШИБКА</b>\n'''
'''Отправка больше 1-ого изображения в канал <b>ЗАПРЕЩЕНА</b>\n'''
'''из-за ограничений API Telegram''',
parse_mode='HTML')
bot.send_message(message.chat.id,
"Попробуйте снова по следующей инструкции:\n"
"1. Введите команду <b>/start</b>, ожидайте сообщение-приветствие\n"
"2. Пишите свое обращение, прикрепите фото по необходимости, <b> НО НЕ БОЛЕЕ 1-го</b>\n"
"3. При наличии дополнительных фото прикрепите оставшиеся в комментарии к посту",
parse_mode='HTML')
return
else:
if message.caption:
text = "\n\nЗапрос от монтера - #"
caption = message.caption + text + u.fullname().replace(" ", "_")
else:
caption = "\n\nЗапрос от монтера - #" + u.fullname().replace(" ", "_")
if message.content_type == 'photo':
if any(word in caption for word in f_words):
bot.send_message(message.chat.id,
'''<b>Нецензурная лексика в постах запрещена!</b>\n'''
'''Попробуйте еще раз по инструкции:\n'''
'''1.Напишите /start в бот\n'''
'''2.Изложите свое обращение в чат без <b>нецензурной лексики</b>'''
'''и отправьте в бота''',
parse_mode='HTML')
return
else:
photo_id = message.photo[-1].file_id
sendedMessage = bot.send_photo(chat_id, photo_id, caption)
elif message.content_type == 'text':
if any(word in message.text.lower() for word in f_words):
bot.send_message(message.chat.id,
'''<b>Нецензурная лексика в постах запрещена!</b>\n'''
'''Попробуйте еще раз по инструкции:\n'''
'''1.Напишите /start в бот\n'''
'''2.Изложите свое обращение в чат <b>без нецензурной лексики</b>'''
'''и отправьте в бота''',
parse_mode='HTML')
return
else:
sendedMessage = bot.send_message(chat_id,
message.text + "\n\nЗапрос от монтера - #" + u.fullname().replace(
" ", "_"))
<b> # ДОБАВЛЕНИЕ КОММЕНТАРИЯ К ПОСТУ
comment = "."
bot.send_message(chat_id, comment, reply_to_message_id=sendedMessage.message_id)
print(f'свойства сообщения {sendedMessage.message_id}')
</b>
Результат следующий:
Вопрос:
Как сделать, чтобы бот оставлял комментарий в только-что отправленном посте?