Call

Call

ki

call - это данные нажатой кнопки и сообщения к которому она прикреплена.


Давайте посмотрим что там находится, и научится извлекать данные из call.

Для этого создадим примитивного бота, который отправит нам данные call:

import telebot 
from telebot import types
TOKEN ="914523141:AAG51M9RB51O-zcop7uFb88QaOvwCHrGcoU" 

bot = telebot.TeleBot (TOKEN)


@bot.message_handler(content_types = ['text'])
def send_welcome(message):
     keyboard = types.InlineKeyboardMarkup()
     keyboard.add(types.InlineKeyboardButton("text",callback_data =    "kot"))
     bot.send_message(message.chat.id, 'Текст', reply_markup = keyboard )

@bot.callback_query_handler(func=lambda call: True)
def knopka_kot(call):
     if call.data == "kot":
        bot.send_message(call.message.chat.id, call)

bot.polling(none_stop = True)

Наш бот, на любое текстовое сообщение отправляет сообщение с кнопкой. После нажатия кнопки, бот отправляет дынные call.


В этом объекте находится информация отправленного сообщения, у которого была нажата кнопка:

данные кнопки, данные сообщения, данные пользователя который нажал кнопку, и другая полезная информация.


Получение данных из call:

call.from_user - данные пользователя нажавшего кнопку. Для наглядности отправим их с помощью бота:

bot.send_message(call.message.chat.id, call.from_user)
call.from_user

Как видим у from_user есть несколько пар ключ-значение. Из from_user возможно извлечь интересующие нас данные:

call.from_user.id        # id-пользователя.
call.from_user.username  #логин пользователя.
first_name               #имя пользователя.
и т.д.

call.message - данные сообщения.

call.data - callback_data нажатой кнопки

inline_message_id - id-сообщения, которое нажато в inline-режиме.

Report Page