@Igroman228

Как сравнить айди человека который нажал на инлайн кнопку?

Как получить айди человека который нажал на кнопку и сравнить с тем кому предназначена эта кнопка.

@bot.message_handler(content_types=["new_chat_members"])
def send_test(message):
	 bot.delete_message(message.chat.id, message.message_id)
	 bot.restrict_chat_member(message.chat.id, message.from_user.id)
	 Knopka = types.InlineKeyboardMarkup()
	 knop1 = types.InlineKeyboardButton(text = '', callback_data = 'Ok')
	 knop2 = types.InlineKeyboardButton(text = '', callback_data = 'No')
	 Knopka.add(knop1, knop2)
	 name = message.from_user.first_name
	 bot.send_message(message.chat.id, name + ', добро пожаловать в чат \nчтобы получить доступ к чату нажми на эмодзи \'\' ниже', reply_markup = Knopka)


@bot.callback_query_handler(func = lambda call: True)
def answer(call):
	if call.data == "Ok":
		name = call.from_user.first_name
		bot.restrict_chat_member(call.message.chat.id, call.from_user.id, can_send_messages = True, can_send_media_messages = True, can_send_polls = True, can_send_other_messages = True, can_add_web_page_previews = True)
		bot.restrict_chat_member(call.message.chat.id, call.from_user.id, until_date=time()+300)
		bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text= name +  ' доступ к чату откроется через 5 минут а пока вы можете ознакомится с правилами')
	elif call.data == "No":
		name = call.from_user.first_name
		bot.kick_chat_member(call.message.chat.id, call.from_user.id)
		bot.restrict_chat_member(call.message.chat.id, call.from_user.id, can_send_messages = True, can_send_media_messages = True, can_send_polls = True, can_send_other_messages = True, can_add_web_page_previews = True)
		bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text= name + ', не прошел капчу и был кикнут из чата')
  • Вопрос задан
  • 283 просмотра
Решения вопроса 1
@Igroman228 Автор вопроса
В общем вот решение:
Нужно было создать глобальную переменную
И поместить в 1 функцию
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Если всё это делается в чате с другими людьми (что несколько странно, я считаю), то можно, например, передавать id юзера в callback_data (например, в виде ok-12345 и no-12345 соответственно), а потом сравнивать id из call.data с значением call.from_user.id.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект