Wie man user_id einer Telefonnummer im Telegramm
Im erstellen von einem bot sendet eine Nachricht an mehrere Ansprechpartner im Telegramm.
Benutzer können teilen, Kontakt mit bot. dann benutze ich getUpdates und erhalten die Telefon-Nummer.
Für die mithilfe der sendMessage-Methode brauche ich die chat_id.
nun, wie man chat_id der Nutzer mit seiner Telefonnummer?
Gibt es eine Möglichkeit, besser als diese Methode, dies zu tun?
Ein bot kann keine Verbindung zu einem Benutzer an, der nicht geschrieben hat, um den bot vor.
Wenn jemand sendet ein Kontakt, den bot mit einer Telefonnummer registriert, im Telegramm, es gibt ein zusätzliches Feld
Wenn jemand sendet ein Kontakt, den bot mit einer Telefonnummer registriert, im Telegramm, es gibt ein zusätzliches Feld
user_id
im Kontakt, aber wie ich schon sagte, dein bot nicht erreichen können, dass Benutzer, wenn der Benutzer gar nicht schreiben, dass der bot bevor.InformationsquelleAutor Majid Sajadi | 2017-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Internet-Dienste, um zu überleben, Sie müssen kämpfen mit jeder Art von spam. Als Ergebnis, Telegramm bots können nicht starten Sie das senden von Nachrichten an Benutzer, die nicht starten mit dem bot noch nicht!
Nur, wenn ein Benutzer beginnt, mit der bot-Sie können sehen, seine/Ihre
chat_id
und senden von Nachrichten an ihn.Dass gesagt wird, wenn ein Benutzer (Benutzer A) sendet Sie ein
contact
details eines anderen Benutzers (nennen wir diese, Benutzer B), können Sie sehenuser_id
des Benutzers B. Sie sind Jedoch noch immer nicht senden Sie alle Nachrichten direkt, es sei denn, er/Sie auch begonnen, mit den bot vor.Dieses Verhalten ermöglicht es uns, ein workaround und Abfrage Nutzern, indem Sie Telefonnummer oder zumindest bestätigen ein Benutzer die Telefonnummer, falls erforderlich.
Um dies zu tun, müssen Sie erstellen
contact
Nachricht. Es ist egal, wer verschickt die Nachricht, auch der bot die Nachricht senden kann. Die Idee ist, lassen Telegramm füllen Sie dasuser_id
des neuencontact
Nachricht. Lesen Sie über dieses Objekt hier: Kontakt ObjektDie Methode, die wir verwenden müssen, ist sendContact und es muss ein Ziel
chat_id
einefirst_name
und einphone_number
. Jetztfirst_name
kann eine beliebige Zeichenfolge sein, und sein Wert ist irrelevant für den Prozess. Auchchat_id
werden können, die Identifizierung eines jeden Benutzers chat mit dem bot, auch Ihre. Es kann auch der Namen einer Gruppe oder einem channel in dem der bot ist ein administrator mit Schreibzugriff, zum Beispiel@my_private_bot_channel
. Kurz gesagt, überall, bot einen Beitrag schreiben können. So brauchen Sie nur diephone_number
.Nach dem senden der Nachricht erhalten Sie eine Antwort des Servers, zusammen mit dem Nachricht, dass dein bot gerade gebucht. Die
contact
Feld dieses neu erstellte Nachricht enthält Informationen über den Benutzer, den Sie gerade teilte ihm in Berührung zu kommen, möglicherweise zusammen mit seinem/Ihr Telegrammuser_id
das ist das gleiche wie der Benutzer die chat-id.Recht darauf, können Sie löschen Sie Ihre Nachricht mit dem deleteMessage Methode.
Folgende ist ein Beispiel, dies zu tun in einfachen Anfrage/Antwort-format, aber Sie sollten wahrscheinlich verwenden Sie einen Rahmen für diese:
Die Antwort auf diese Anfrage ist wie folgt:
"user_id": 654789321
ist der Teil, an dem wir interessiert sind. Jetzt können Sie löschen Sie Ihre Nachricht.Vielen Dank für Ihre Methode. Wenn ich nur eine Telefonnummer haben, wie bekomme ich die user_id Telegramm-Benutzer. Da wir weitergeben müssen chat_id und Vorname des Benutzers, um Ihre Methode zu arbeiten.
Nein! beachten Sie, dass der Vorname kann eine beliebige Zeichenfolge sein. chat_id können auch Ihre eigenen chat_id!
Vielen Dank für Ihre Antwort
111:2222222 werden muss, ersetzen Sie mit bot-token.
InformationsquelleAutor علیرضا
Gibt es ein problem: Sie können nicht senden Sie eine Nachricht von einem bot ein Benutzer als Gesprächs-initiator, auch wenn Sie die user_id.
InformationsquelleAutor saied sao
Wissen die user_id kann nützlich sein für ban und unban.
Hier ist der Weg ich Mach das auf meine web-site:
1) erstellen Sie eine kleine random-code und zeigen Sie es dem Benutzer, sagt ihm, um es zu senden, um Ihr bot.
2) Lesen Sie die Nachricht mit getUpdate. Also in PHP:
Erhalten Sie 3 Informationen:
Vergleichen Sie mal den text, den Sie Lesen, mit dem code, Fragen Sie den Benutzer zu senden. Wenn es das gleiche Sie können Lesen Sie die chat_id und der Vorname.
In diesem Punkt haben Sie die chat_id, das ist genug, um zu schreiben, um den Benutzer in "private". Für die, die keine Notwendigkeit zu wissen, die user_id.
Wenn Sie möchten, dass die Benutzer-id, senden Sie eine weitere Nachricht. Wie diese:
Wie Sie sehen können, der zum senden der zweiten Nachricht, die Sie brauchen 3 Informationen:
1) die Mobiltelefon-Nummer des Benutzers. Sie NICHT bekommen KANN es aus-Telegramm. Bedeutung, die Sie stellen müssen, es von der Benutzer.
2) die chat_id. Sie Holen es aus dem vorherigen Aufruf
3) die first_name Sie bekommen es auch von den früheren call
Die user_id befindet sich unter:
Einige details:
1) Es scheint Telegramm nicht überprüfen Sie den Vorname ein. Also, wenn Sie senden für den zweiten Aufruf ein anderes first_name als die, die Sie bekommen aus der erste Anruf, es spielt keine Rolle (aber vielleicht sicherer zu senden das gleiche. In allen Fällen bekommen Sie es vom ersten Anruf!)
2) wenn Sie den zweiten Anruf mit einer falschen Telefonnummer, erhalten Sie ein Ergebnis OHNE die user_id Eintrag.
Damit Sie tun müssen:
3) Die Rufnummer muss die Landesvorwahl. +5599888887777 ist OK, aber 99888887777 ist nicht und wird Ihnen eine Antwort geben, ohne die user_id Eintrag.
Nun können Sie sprechen, mit dem Benutzer über das chat_id und auch ihn bannen von Gruppe oder Kanal mit seiner user_id.
InformationsquelleAutor Peter