получить телефон пользователя

Python Telebot – obtenir le numéro de téléphone de l’utilisateur

Bonjour à tous ! En fait, l’essentiel du problème est indiqué dans le titre du post : comment obtenir le téléphone d’un utilisateur en utilisant Python et la bibliothèque Telebot. Essayons de trouver une solution 😉

Vous trouverez ci-dessous un exemple d’année de travail, qui, je l’espère, vous aidera 🙂 Si vous avez des questions, n’hésitez pas à les poser sur email ou Telegram.

import telebot #Connected the Telebot library - to work with Telegram
from telebot import types #Connecte les modules complémentaires
import config #Connected the library Config, with the help of which we can store the token not in the code of the programme ;) but in the file config.py. Important : ce fichier doit se trouver dans le même répertoire que le code !
bot = telebot.TeleBot(config.token) #Connecté le jeton
@bot.message_handler(commands=['number']) #Déclaré une branche pour travailler sur la commande <strong>number</strong>.
def phone(message) :
keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True) #Attachez le clavier
button_phone = types.KeyboardButton(text="Send phone", request_contact=True) #Specify the name of the button that will appear to the user
keyboard.add(button_phone) #Ajouter ce bouton
bot.send_message(message.chat.id, 'Phone number', reply_markup=keyboard) #Duplicate with a message that the user will now send his phone number to the bot (just in case, but it's not necessary).
@bot.message_handler(content_types=['contact']) #Déclare la branche où nous écrivons la logique au cas où l'utilisateur décide d'envoyer son numéro de téléphone :)
def contact(message) :
if message.contact is not None : #Si l'objet <strong>contact</strong> envoyé n'est pas null
print(message.contact) #Afficher les données du contact dans notre panneau. Et en général, vous pouvez, par exemple, les sauvegarder ou faire autre chose.

Spécialement pour vous – vidéo avec une instruction plus visuelle :

Comme vous pouvez le voir, tout est très, très simple 🙂
Merci pour votre attention !

P.S. Sur ma chaîne Youtube, un de mes abonnés a posé une question intéressante : comment cacher le clavier après l’envoi d’un numéro de téléphone ? Je ne connaissais pas la réponse à cette question 🙁 Cependant, un jour plus tard, l’abonné m’a donné une solution, que je partage ici :

keyboard = types.ReplyKeyboardRemove()
bot.send_message(message.chat.id, msg, reply_markup=keyboard)

P.P.S. Une question s’est posée il n’y a pas si longtemps : comment envoyer, par exemple, le numéro de téléphone reçu d’un utilisateur sous une forme digeste quelque part dans un groupe ? C’est très simple :
1. Ajoutez un bot qui enverra les informations reçues au groupe souhaité avec des privilèges d’administrateur.
2. Dans le code du robot, apportez les modifications suivantes à la fonction def contact(message) :

@bot.message_handler(content_types=['contact'])
def contact(message) :
Si message.contact n'est pas None :
print(message.contact)
print(type(message.contact))
print('Nom : ' + str(message.contact.first_name))
text = 'Utilisateur : ' + message.contact.first_name + ' : phone : ' + message.contact.phone_number
bot.send_message(id_channel, text)

En fait, vous pouvez produire ce que vous voulez – il suffit d’utiliser le nom du champ requis dans le schéma :

'phone_number' : '***', 'first_name' : '***', 'last_name' : '***', 'user_id' : '***', 'vcard' : '***'

où les astérisques cachent les coordonnées complètes de l’utilisateur.

Support the Blog!

Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️

PayPal Logo Donate via PayPal

Revolut Logo Donate via Revolut