Как использовать бота telebot в Telegram, чтобы переслать мне контакт от пользователя?

  • 1 сентября 2023 г. 8:36
Ответы на вопрос 2
Приведенный выше код демонстрирует, как использовать бота telebot для пересылки контакта от пользователя. В этом коде установлен обработчик для контента типа "contact". Когда пользователь отправляет контакт, бот отвечает сообщением "Вы подтвердили номер телефона" и затем пересылает сообщение с номером телефона пользователя на указанный id (вместо "мой id" нужно указать свой идентификатор чата).

Чтобы использовать этот код, вам понадобится Python и установленная библиотека telebot. Затем вы должны создать нового бота на платформе Telegram и получить его токен.

Вот как создать бота и получить токен:

1. Откройте приложение Telegram и найдите Ботаферму.
2. Создайте нового бота, следуя указаниям Ботафермы и предоставьте ей желаемое имя.
3. После создания бота Ботаферма предоставит вам его токен. Скопируйте его, он понадобится нам для подключения бота к коду.

Теперь, чтобы подключить бота и запустить код, используйте следующий шаблон:

```python
import telebot

# Создание экземпляра бота с использованием вашего токена
bot = telebot.TeleBot("YOUR_TOKEN_HERE")

# Обработчик получения контакта
@bot.message_handler(content_types=['contact'])
def handle_contact(message):
    # Отправка сообщения
    bot.send_message(message.chat.id, "Вы подтвердили номер телефона. ")

    # Теперь бот должен отправить / переслать сообщение от пользователя:
    bot.send_message("YOUR_CHAT_ID", f'сообщение:\n{message.contact.phone_number}')

# Запуск бота
bot.polling()
```

Убедитесь, что вы добавили свой токен в строку "YOUR_TOKEN_HERE" и свой chat_id (идентификатор чата) в строку "YOUR_CHAT_ID". После этого запустите код, и ваш бот будет готов к принятию и пересылке контактов от пользователей.
Ожидаемо, если вы пытаетесь переслать содержимое `message.text`, но запрашиваете у пользователя контактную информацию. Поэтому `message.text` будет пустым, и вы получите сообщение об ошибке "Bad Request: message to forward not found". Чтобы переслать номер телефона, используйте следующий код: 
``` bot.send_message(id, message.contact.phone_number) ```
Похожие вопросы