Как я могу получить Chat_id в Telegram? - PullRequest
0 голосов
/ 16 июня 2020

Привет, у меня проблема с телоботом.

Я пытаюсь сделать это, как описано в официальной документации, но они используют переменную chat_id (я знаю, что это такое), и я готов знаю, как получить его и использовать.

Бонус: как я могу позволить клавишам на клавиатуре отправлять сообщение от пользователя для активации функций. Объяснение лучше: пользователь нажимает кнопку на клавиатуре и отправляет команду (например, / it_lang), а затем использует функцию обработки команд, чтобы что-то сделать.

docs: https://github.com/eternnoir/pyTelegramBotAPI

    import telebot
    from telebot import types
    from config import TOKEN, bot_is_active
    bot = telebot.TeleBot(TOKEN)
    if bot_is_active :
    u/bot.message_handler(commands=['start'])
    def choose_lang(message):
            markup = types.ReplyKeyboardMarkup()
            it_btn = types.KeyboardButton('IT')
            en_btn = types.KeyboardButton('EN')
            markup.row(it_btn)
            markup.row(en_btn)
            bot.send_message(chat_id, "Please choose a language:", reply_markup=markup)

        bot.polling()
    else:
    u/bot.message_handler(commands=['start'])
    def choose_lang(message):
            bot.reply_to(message, "I'm sorry the bot is no available,try later")
        bot.polling()

1 Ответ

0 голосов
/ 17 июня 2020

Если я вас правильно понял:

cid = message.chat.id

Вся информация, которую вы можете получить:

@bot.message_handler(commands=['start'])
def start(message):
    print(message)

UPD:

bot = telebot.TeleBot('Token')
keyboard1 = telebot.types.ReplyKeyboardMarkup()
keyboard1.row('IT', 'ENG')

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, 'Hello, i reveive /start', reply_markup=keyboard1)

@bot.message_handler(content_types=['text'])
def send_text(message):
    if message.text.lower() == 'it':
        bot.send_message(message.chat.id, 'Your language is IT')
        <do something>
    elif message.text.lower() == 'eng':
        bot.send_message(message.chat.id, 'Your language is ENG')
        <do something>
...