Archiv der Kategorie: Python

Python Telebot – Abfrage der Telefonnummer des Benutzers

Hallo zusammen! Eigentlich ist die Essenz des Problems im Titel des Beitrags angegeben: wie man das Telefon eines Benutzers mit Python und Telebot-Bibliothek zu bekommen. Let’s figure it out 😉

Unten finden Sie ein Beispiel für ein funktionierendes Jahr, das Ihnen hoffentlich helfen wird 🙂 Wenn du Fragen hast, kannst du sie gerne an email oder Telegram stellen.

import telebot #Connected the Telebot library - to work with Telegram
from telebot import types #Verbundene Add-ons
import config #Angeschlossen die Bibliothek Config, mit deren Hilfe wir das Token nicht im Code des Programms ;) sondern in der Datei config.py speichern können. Wichtig: diese Datei muss sich im gleichen Verzeichnis wie der Code befinden!
bot = telebot.TeleBot(config.token) #Verbinden des Tokens
@bot.message_handler(commands=['number']) #Deklariert eine Verzweigung, um mit dem number Befehl zu arbeiten
def phone(message):
keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True) #Tastatur anhängen
button_phone = types.KeyboardButton(text="Telefon senden", request_contact=True) #Bestimmen Sie den Namen der Schaltfläche, die dem Benutzer angezeigt wird
keyboard.add(button_phone) #Hinzufügen dieser Schaltfläche
bot.send_message(message.chat.id, 'Telefonnummer', reply_markup=keyboard) #Duplizieren Sie mit einer Nachricht, dass der Benutzer nun seine Telefonnummer an den Bot sendet (nur für den Fall, aber es ist nicht notwendig).
@bot.message_handler(content_types=['contact']) #Deklariert den Zweig, in dem wir die Logik für den Fall schreiben, dass der Benutzer sich entscheidet, die Telefonnummer zu senden :)
def contact(nachricht):
if message.contact is not None: #Wenn das gesendete Kontakt Objekt nicht null ist
print(message.contact) #Kontaktdaten in unserem Panel anzeigen. Und im Allgemeinen kann man sie zum Beispiel speichern oder etwas anderes tun.

Speziell für Sie – ein Video mit einer visuelleren Anleitung:

Wie Sie sehen können – alles ist sehr, sehr einfach 🙂
Vielen Dank für Ihre Aufmerksamkeit!

P.S. Auf meinem Youtube-Kanal stellte einer meiner Abonnenten eine interessante Frage: Wie kann man die Tastatur ausblenden, nachdem man eine Telefonnummer gesendet hat? Ich wusste keine Antwort auf die Frage 🙁 Aber einen Tag später gab mir der Abonnent eine Lösung, die ich hier teile:

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

P.P.S. Vor nicht allzu langer Zeit tauchte eine Frage auf – wie kann man z.B. die Telefonnummer, die man von einem Benutzer erhalten hat, in verdaulicher Form irgendwo in einer Gruppe versenden? Das ist ganz einfach:
1. Fügen Sie einen Bot hinzu, der die erhaltenen Informationen an die gewünschte Gruppe mit Administrator-Rechten senden soll
2. Nehmen Sie im Code des Bots die folgenden Änderungen an der Funktion def contact(message) vor:

@bot.message_handler(content_types=['contact'])
def contact(message):
Wenn message.contact nicht None ist:
print(nachricht.kontakt)
print(type(nachricht.kontakt))
print('Name: ' + str(message.contact.first_name))
text = 'Benutzer: ' + message.contact.first_name + ': Telefon: ' + message.contact.phone_number
bot.send_message(id_channel, text)

Eigentlich können Sie alles ausgeben, was Sie wollen – verwenden Sie einfach den Namen des erforderlichen Feldes im Schema:

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

wobei die Sternchen die vollständigen Kontaktangaben des Nutzers verbergen.