Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Telegram id, бот. Помогите написать

саша мордашов Ученик (147), закрыт 3 месяца назад
Есть бот. Человек пишет боту "@user". Упоминая кого либо. Бот должен найти id этого пользователя и вывести его. Напиши пожалуйста, как это сделать?
Лучший ответ
4dmonkey Искусственный Интеллект (194043) 5 месяцев назад
С такой постановкой вопроса - никак. Нравится тебе или нет, но это правильный ответ
Остальные ответы
Ixoor Vítwep Знаток (386) 5 месяцев назад
Зайди в профиль человека, там будет айди
Точка Забивная Знаток (342) 5 месяцев назад
вот чо натыкал чат гпт:Для того чтобы бот мог распознать упоминание пользователя и получить его ID, потребуется использовать Telegram Bot API и обработку сообщений. Предположим, что бот написан на Python с использованием библиотеки python-telegram-bot.

Вот шаги, которые нужно выполнить:

Бот должен обрабатывать входящие сообщения.
Когда он находит упоминание в сообщении (например, @username), он должен извлечь ник пользователя и найти его ID.
Бот отправляет ID пользователя в ответ.
Пример кода для этого:

python
Copy code
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
import re

# Функция обработки сообщений
def handle_message(update: Update, context: CallbackContext):
# Получаем текст сообщения
text = update.message.text

# Ищем упоминание пользователя в формате @username
match = re.search (r'@(\w+)', text)

if match:
username = match.group (1) # Извлекаем username
try:
# Получаем информацию о пользователе
user = update.message.bot .get_chat(username)
# Отправляем ID пользователя
update.message.reply_text(f"ID пользователя {username}: { user.id }")
except Exception as e:
update.message.reply_text(f"Не удалось найти пользователя {username}. Ошибка: {e}")
else:
update.message.reply_text("Не найдено упоминаний пользователей.")

# Основная функция для настройки бота
def main():
# Создаем объект Updater и передаем токен вашего бота
updater = Updater("YOUR_BOT_API_TOKEN", use_context=True)

# Получаем диспетчер сообщений
dispatcher = updater.dispatcher

# Добавляем обработчик сообщений
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, handle_message))

# Запускаем бота
updater.start_polling()
updater.idle()

if __name__ == '__main__':
main()
Описание работы кода:
Бот слушает все текстовые сообщения с помощью MessageHandler.
В функции handle_message он ищет упоминания пользователей в формате @username с использованием регулярных выражений.
Если упоминание найдено, бот пытается получить информацию о пользователе через get_chat(), передавая в него username.
Бот отправляет ID пользователя в ответ.
Важные моменты:
Для получения информации о пользователе через get_chat(), пользователь должен быть публичным (его username должен быть настроен).
Если ник пользователя неверен или такого пользователя нет, будет выброшено исключение.
Токен вашего бота нужно заменить на реальный в строке updater = Updater("YOUR_BOT_API_TOKEN", use_context=True).
Если у вас есть другие особенности или пожелания по функционалу, не стесняйтесь уточнять!
ᅠ ᅠ Гуру (4625) 5 месяцев назад
Как минимум - сформируй вопрос более понятно. И какую вообще библиотеку ты используешь?
Похожие вопросы