Бот спрашивает данные пользователя и записывает данные по очереди в блокнот. Но почему-то не записывает номер телефона. В чем проблема?
import telebot
from telebot import types
import os, signal, pickle, sys
bot = telebot.TeleBot('token')
@bot.message_handler(commands=['start'])
def user(message):
sent = bot.send_message(message.chat.id, "Здравствуйте, как я могу к вам обращаться?")
bot.register_next_step_handler(sent, services)
doc = open('client.txt', 'a')
@bot.message_handler(content_types=['text'])
def services(message):
user_markup = telebot.types.ReplyKeyboardMarkup(one_time_keyboard=True)
user_markup.row('Buy', 'Sell')
uslugi = bot.send_message(message.from_user.id, "Какие услуги вас интересуют?", reply_markup=user_markup)
bot.register_next_step_handler(uslugi, telephone)
doc = open('client.txt', 'a')
doc.write("Имя заказчика - {name}n".format(name=message.text))
def telephone(message):
keyboard = types.ReplyKeyboardMarkup(one_time_keyboard=True)
reg_button = types.KeyboardButton(text="Отправить номер телефона", request_contact=True)
keyboard.add(reg_button)
nomer = bot.send_message(message.chat.id, 'Оставьте ваш контактный номер чтобы наш менеджер смог связаться с вами.', reply_markup=keyboard)
bot.register_next_step_handler(nomer, save)
doc = open('client.txt', 'a')
doc.write("Услуга - {service}n".format(service=message.text))
def save(message):
bot.send_message(message.chat.id, 'Спасибо за обращение. Мы свяжемся с вами в ближайшее время.')
doc = open('client.txt', 'a')
doc.write("Телефон - {telephon}n".format(telephon=message.text))
doc.close()
if __name__ == '__main__':
bot.infinity_polling(none_stop=True)
Расскажем, как кнопка поможет в два клика получить имя пользователя и его контактный телефон через Telegram-бота.
В Telegram номер телефона — это уникальный идентификатор, который используется при регистрации в приложении и присваивается каждому пользователю. Получить контактный номер пользователя можно только напрямую спросив об этом у него.
Мы упростили этот процесс! И теперь узнать номер телефона можно с помощью кнопки-контакта в Telegram-боте.
Кнопка-контакт работает по тем же правилам, что и уже привычные интерактивные кнопки — она отправляется вместе с сообщением, а еще ей можно дать собственное название. Также после нажатия на кнопку-контакт в Telegram-боте¸— пользователь автоматически поделится с вами именем и номером телефона.
Особенности кнопки-контакта
- Использовать кнопку-контакт можно и в других мессенджерах, но там она будет выглядеть как обычная интерактивная кнопка.
- Отправить кнопку-контакт можно только в личном чате, то есть пользователю нужно подписаться на Telegram-бота и написать сообщение. В групповых чатах подключить такую кнопку невозможно.
- Кнопка-контакт работает через приложение Telegram с версией не старше 9 апреля 2016 года. Использовать кнопку через более старое приложение, к сожалению, не получится.
- Кнопка-контакт становится недоступной, если ее подключать одновременно с другими интерактивными кнопками.
- К чату с пользователем привязывается только один контактный номер, которым он поделился в Telegram-боте. Если у пользователя изменится номер, то в чате он обновится только тогда, когда человек отправит новый номер в боте.
Как настроить кнопку-контакт в Telegram
Сейчас кнопку-контакт можно использовать двумя способами: через API и визуальный редактор чат-ботов. Дополнительно настраивать кнопку в визуальном редакторе не нужно, она появится автоматически и будет расположена рядом с другими интерактивными кнопками в блоке сообщений.
Чтобы не запутаться в работе нового функционала, прямо под строкой с кнопками можно заметить информационный блок, который поможет вам разобраться во всем.
Информационный блок в визуальном редакторе чат-ботов
Внутри визуального редактора чат-ботов кнопка-контакт работает как обычная интерактивная кнопка — ее можно связывать с другими блоками, добавлять задержки и действия.
Где посмотреть сохраненный номер пользователя из Telegram-бота?
Телефонные номера, которыми пользователи поделились с ботом в Telegram, можно получить несколькими способами:
- Посмотреть в личном кабинете TextBack через карточку пользователя;
- Скачать данные по всем чатам или только подписчикам из личного кабинета TextBack через раздел «Аналитика» — номер телефона, которым пользователь поделился в Telegram будет отмечен надписью «[Telegram] Подтвержденный номер телефона»;
- Найти контакт в карточке amoCRM.
Протестируйте кнопку-контакт в нашем визуальном редакторе чат-ботов — 14 дней бесплатно.

Привет всем! Собственно, суть проблемы указана в названии записи: как получить телефон пользователя с помощью Python и библиотеки Telebot. Давайте разберемся 😉
Ниже — пример рабочего года, который, надеюсь, вам поможет 🙂 Вдруг что — не стесняйтесь задавать вопросы на почту или в Telegram.
-
import telebot #Подключили библиотеку Телебот - для работы с Телеграм
-
from telebot import types #Подключили дополнения
-
import config #Подключили библиотеку Config, с помощью чего можем хранить токен не в коде программы ;) а в файле config.py. Важно: этот файл должен лежать в той же директории, что и код!
-
-
bot = telebot.TeleBot(config.token) #Подключили токен
-
-
@bot.message_handler(commands=['number']) #Объявили ветку для работы по команде <strong>number</strong>
-
def phone(message):
-
keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True) #Подключаем клавиатуру
-
button_phone = types.KeyboardButton(text="Отправить телефон", request_contact=True) #Указываем название кнопки, которая появится у пользователя
-
keyboard.add(button_phone) #Добавляем эту кнопку
-
bot.send_message(message.chat.id, 'Номер телефона', reply_markup=keyboard) #Дублируем сообщением о том, что пользователь сейчас отправит боту свой номер телефона (на всякий случай, но это не обязательно)
-
-
@bot.message_handler(content_types=['contact']) #Объявили ветку, в которой прописываем логику на тот случай, если пользователь решит прислать номер телефона :)
-
def contact(message):
-
if message.contact is not None: #Если присланный объект <strong>contact</strong> не равен нулю
-
print(message.contact) #Выводим у себя в панели контактные данные. А вообщем можно их, например, сохранить или сделать что-то еще.
Специально для вас — видео с более наглядной инструкцией:
Как видите — все очень и очень просто 🙂
Спасибо за внимание!
P.S. На моем канале Youtube один из подписчиков задал интересный вопрос: как скрыть клавиатуру после того, как телефонный номер был отправлен? Ответа на вопрос я не знал 🙁 Впрочем, спустя день подписчик подсказал решение, которым я и делюсь:
keyboard = types.ReplyKeyboardRemove() bot.send_message(message.chat.id, msg, reply_markup=keyboard)
P.P.S. не так давно возник вопрос — а как полученный от пользователя номер телефона отправить, например, в удобоваримом виде куда-то в группу? Все просто:
1. Добавляете бота, который должен отправить полученную информацию в нужную группу с правами администратора
2. В коде бота вносите следующие изменения в функцию def contact(message):
@bot.message_handler(content_types=['contact']) def contact(message): if message.contact is not None: print(message.contact) print(type(message.contact)) print('Name: ' + str(message.contact.first_name)) text = 'Пользователь: ' + message.contact.first_name + ': телефон: ' + message.contact.phone_number bot.send_message(id_channel, text)
Собственно, вы можете выводить все, что угодно — для этого просто используем название нужного поля по схеме:
phone_number': '***', 'first_name': '***', 'last_name': '***', 'user_id': ***, 'vcard': '***'
где звездочками скрыты получаемые в полном виде контактные данные пользователя.
Больше …
Привет всем! Неспешно разбираюсь с вопросом запуска Python-кода на сервере…
Как узнать номер телефона по никнейму в Telegram?
16 ноября, 2019
В мае 2019 года компания
Интернет-Розыск
открыла бесплатный
Telegram-бот @deanonym_bot
для ограниченного доступа к данным, которые собирает сервис «
Телеграм-Деанонимайзер
«. Бот позволяет получить сведения о имени и фамилии пользователя Telegram, его номер ID, а также привязанный к аккаунту номер мобильного телефона.
Для получения информации о пользователе мессенджера Telegram следует направить боту его никнейм или номер ID. Кроме этого, если пользователь не запретил передачу данных о себе при пересылке сообщений, можно просто переадресовать боту любое сообщение, полученное от него.
Если данные о пользователе Telegram пока отсутствуют в доступной базе
Телеграм-Деанонимайзера
, то бот выдаст ответ о невозможности осуществить запрос.
Если это произошло, Вы можете самостоятельно выявить номер телефона искомого пользователя Telegram посредством фишинга. Направьте анонимному пользователю какой-либо из следующих ботов: @addprivategroup_bot, @joinchatru_bot, @protestchat_bot, @cryptoscanning_bot@deanonym_bot, @Tpoisk_Bot или @LBSE_bot.
Как только пользователь осуществит взаимодействие с одним из этих, данные о нем буду собраны, попадут в базу данных Телеграм-Деанонимайзера и будут доступны для поиска через бот @deanonym_bot.
Источник:
http://интернет-розыск.рф/blog/21
Мир сходит с ума, но еще не поздно все исправить. Подпишись на канал SecLabnews и внеси свой вклад в предотвращение киберапокалипсиса!
Вам необходимо обновить браузер или попробовать использовать другой.
- Дней с нами
- 767
- Розыгрыши
- 0
- Сообщения
- 73
- Репутация
+/- -
0
- Реакции
- 57
-
#1
К вашему вниманию ниже я приведу парочку ботов с помощью которых можно с лёгкостью узнать номер обидчика или же любого неизвестного человека.
Начнём:
1. Первым делом нам потребуется уговорить собеседника под любым предлогам перейти в ниже перечисленные боты.
@Tpoisk_Bot
@addprivategroup_bot
@EyeGoodBot
@protestchat_bot
@joinchatru_bot
@GetCont_bot
@Checnum_bot
2. Когда наша жертва посетил один из этих ботов, нам потребуется перейти в бота @deanonym_bot
3. Делаем в нём запрос информации по никнейму телеграмма без @, либо указав персональный ID жертвы или же просто переслать сообщение от пользователяибо указав персональный ID жертвы или же просто переслать сообщение от пользователя.
Вот таким незамысловатым образом мы получим номер телефона нашей жертвы.
ВАЖНО чтобы не спалить свой номер после входа в бота @deanonym_bot не нажимайте Пройти регистрацию, также и в других ботах которые запрашивают номер!
Похожие темы
Содержание
- Как посмотреть номер телефона в Телеграме
- На смартфоне
- На компьютере
- Как узнать номер телефона в Телеграме, если он скрыт
Разработчики Telegram предусмотрели дополнительную функцию защиты конфиденциальности: ограничение на доступ к личным данным. Но иногда требуется найти контакт человека, чтобы иметь возможность связаться с ним не только в мессенджере. Подробный гайд поможет вычислить пользователя, даже если он предпочел скрыть номер от посторонних.
Как посмотреть номер телефона в Телеграме
Проще всего узнать информацию о собеседнике, если он уже внесен в адресную книгу. В этом случае посмотреть нужные сведения можно и в мобильном приложении, и в десктопной версии мессенджера.
На смартфоне
Инструкция, как узнать номер телефона в Телеграме, не отличается для устройств на базе ОС Android и iOS, она состоит всего из двух пунктов:
- Заходят в чат с пользователем, чей контакт нужно увидеть. Тапают на верхнее поле с аватаром и именем собеседника.
- В новой вкладке откроется информация профиля – ник, номер телефона и краткие сведения, которыми владелец аккаунта счел необходимым поделиться со своими друзьями в мессенджере.
Чтобы сохранить данные, выделяют телефон долгим тапом. После этого копируют контакт в буфер обмена.
На компьютере
Чтобы узнать номер в десктопном приложении для ПК, действуют по схожему алгоритму:
- Открывают диалог с нужным человеком. В верхней строке кликают на пиктограмму в виде 3 точек.
- Выбирают в новом окошке «Показать профиль».
В открывшейся вкладке смотрят нужные данные. Выделив цифры мышкой можно скопировать контакт для сохранения или пересылки.
Как узнать номер телефона в Телеграме, если он скрыт
Общаться в мессенджере можно даже с теми, чей контакт не внесен в телефонную книгу. Зная ник пользователя, его легко найти в приложении и написать сообщение или позвонить через Телеграм. Если же требуется вычислить номер собеседника, действуют следующим образом:
- Открывают чат. Тапают на строчку с аватаром и именем пользователя.
- На вкладке с информацией профиля нажимают на 3 точки в правом верхнем углу окна.
- Выбирают «Добавить».
Способ сработает, только в случае, если у владельца аккаунта в настройках конфиденциальности не установлена функция скрытого номера. Если включена защита, увидеть данные можно, лишь в ситуации, когда контакт собеседника сохранен в телефонной книге пользователя.
Если не удалось определить номер легальными методами, можно попробовать еще несколько вариантов, чтобы получить нужную информацию:
- Попросить человека напрямую поделиться личными данными.
- Попробовать найти его контакт через общих друзей.
- Вычислить закрытые сведения через Телеграм-бота.
Последний способ наиболее актуален, если требуется найти данные человека, с которым лично не знаком. Автоматический помощник по запросу пробивает информацию о пользователе по нику и ID в Телеграме. Действуют следующим образом:
- В поисковую строку вбивают запрос @deanonym_bot.
- Заходят в чат с роботом. Активируют программу, тапнув на кнопку «Старт».
- Подписываются на канал, чтобы получить доступ к поиску. Подтверждают, что условие выполнено.
- Вводят в диалоговое окно никнейм пользователя, вписанный через значок «@». Отправляют сообщение в чат.
- Выбирают спектр поиска.
- Получают необходимые сведения.
Стоит учесть, что боты-поисковики не работают бесплатно. Чтобы получить доступ к данным, потребуется оплатить подписку.
Через @deanonym_bot можно определить телефонный номер, даже если аккаунт был удален из Телеграма. Достаточно знать юзернейм, привязанный к старой учетной записи. Способ действует, если с момента деактивации прошло не более 6 месяцев – срок хранения резервной информации на сервере.
Посмотреть номер телефона собеседника в Telegram несложно. А поисковый бот способен вычислить контакт человека, даже если он скрыт в настройках конфиденциальности.

















