Задать вопрос
@a3aquB

Telebot (python): почему разные форматы телефонов (7 и +7)?

Запрашиваю для авторизации номер телефона пользователя в телеграм-боте. При тесте с одного профиля получаю номер формата "79261111111", с другого профиля - "+79262222222". Для одного профиля, кстати, формат одинаков с разных устройств (комп, андройд). Почему разные форматы номера для разных профилей?
Привожу код на всякий случай
@bot.message_handler(commands=['start'])
def start_handler(message):
    # Получаем номер телефона от пользователя
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=False)
    batton = types.KeyboardButton(mButtonTitle, request_contact=True)
    markup.add(batton)
    msg = bot.reply_to(message, config.mGetPhoneMsg, reply_markup=markup)

@bot.message_handler(content_types=["contact"])
def check_chatid(message):
    print(message.contact.phone_number)
    if message.chat.id in mChatidList:
        bot.send_message(message.chat.id, config.RememberMsg)
    else:
        check_phone_number(message)
  • Вопрос задан
  • 859 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@nllm
Пользователи по разному заносят, или на разных устройствах по разному фиксирует.
После получения номера приводите его к единому виду и сохраняйте его.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Tirael78
вам имеет смысл ознакомиться с стандартом е164 https://ru.wikipedia.org/wiki/E.164
прочитав его вы поймете что 7 это не правильно, правильно +7, а что касается того что кто то хранит российские номера в виде 7... то лишь потому, что атс автоматически добавляет + при наборе
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы