ashikito
@ashikito

Telegram API — как получить ID сообщения из группы для обсуждения?

Впервые в жизни создаю бота для Telegram. Бот уже создан, имеется API для него и примерный код.
Идея бота:
Телеграм бот отслеживает комментарий по ID в определённом канале, редактирует сообщение в канале для обсуждений.
Пример:
Для достижения цели осталось (число которое заменяет бот)/1000 подписчиков! Ребят соберитесь.

Для этого мне нужно получить ID канала и ID сообщения в обсуждении.
Как это сделать?
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ответы на вопрос 1
the_house
@the_house
Full stack разработчик
группа с ботом и инструкцией
import telebot
import os
import random

bot = telebot.TeleBot("8039911053:AAFH8xyMGK-I1QcVlfslvlCdQae4jC7CvPM")
cfg = True

if ".test2.cfg" in os.listdir():
  with open(".test2.cfg", "r") as f:
    data = f.read().split("\n")
    chat_id = int(data[0])
    msg_id = int(data[1])
  print("Конфиг загружен!")
  print(f"ChatID: {chat_id} | MsgID: {msg_id}")
else:
  cfg = False
  cfg_int = random.randint(0, 255)
  print(f"Отправте сообщение в нужный канал с текстом \"{cfg_int}\"")

@bot.message_handler()
def start(message):
  global chat_id, msg_id, cfg, cfg_int
  #print(message.chat.id)
  if cfg == False:
    if message.text == str(cfg_int):
      msg = bot.send_message(chat_id=message.chat.id, text="Ожидание...")
      chat_id = message.chat.id
      msg_id = msg.message_id
      with open(".test2.cfg", "w") as f:
        f.write(f"{chat_id}\n{msg_id}\n")
      print("Конфиг сохранен!")
      print(f"ChatID: {chat_id} | MsgID: {msg_id}")
      bot.edit_message_text(chat_id=message.chat.id, message_id=msg_id, text=f"Для достижения цели осталось {message.message_id}/1000 сообщений! Ребят соберитесь.")
      cfg = True
  elif message.chat.id == chat_id:
    bot.edit_message_text(chat_id=message.chat.id, message_id=msg_id, text=f"Для достижения цели осталось {message.message_id}/1000 сообщений! Ребят соберитесь.")

print("Бот запущен!")
bot.polling()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы