web-dev-qa-db-fra.com

Comment puis-je envoyer un message à quelqu'un avec mon bot télégramme en utilisant son nom d'utilisateur

J'utilise la bibliothèque python du télépot, je sais que vous pouvez envoyer un message lorsque vous avez le nom d'utilisateur de quelqu'un (qui est un nombre) avec leur nom d'utilisateur (celui qui commence par '@'), également s'il existe un moyen de convertir un nom d'utilisateur en un ID utilisateur.

5
ATheCoder

Vous ne pouvez pas envoyer de message aux utilisateurs en utilisant leur nom d'utilisateur se présentant sous la forme @username, vous pouvez simplement envoyer des messages à des noms d'utilisateur de canal dont votre bot est l'administrateur. Telegram bot api utilise l'identifiant chat_id pour l'envoi de messages. Si vous voulez atteindre chat_id d'utilisateurs, vous pouvez utiliser telegram-cli , mais ce n'est pas facile du tout car ce projet est interrompu et vous devez le déboguer vous-même . Dans votre cas, vous devriez exécuter la commande suivante:

> resolve_username vahid_mas

et la sortie sera quelque chose comme ça:

{"user": {"username": "Vahid_Mas", "id": "$010000006459670b02c0c7fd66d44708", "last_name": "", "peer_type": "user", "print_name": "Vahid", "flags": 720897, "peer_id": 191322468, "first_name": "Vahid", "phone": "xxxxxxx"}, "online": false, "event": "online-status", "state": -1, "when": "2017-01-22 17:43:16"}
4
Vahid Msm
  1. Poster un message de l'utilisateur sur le bot.
  2. Ouvrez la page https://api.telegram.org/bot<Bot_token>/getUpdates.
  3. Recherchez ce message et accédez au résultat-> message-> chat-> clé id.
  4. Utilisez cet ID en tant que paramètre [ID_tchat] pour envoyer des messages personnels à l'utilisateur.
4
Andrey Radomanov

Il est uniquement possible d'envoyer des messages aux utilisateurs qui ont déjà utilisé/démarré sur votre bot. Quand ils démarrent votre bot, vous pouvez trouver update.message.from.user_id directement dans le message qu’ils ont envoyé/commencer, et vous pouvez trouver update.message.from.username en utilisant la même méthode . message à "@Username", vous en aurez besoin pour démarrer votre bot, puis stocker le nom d'utilisateur avec le user_id. Ensuite, vous pouvez entrer le nom d'utilisateur pour trouver le nom d'utilisateur correct à chaque fois que vous souhaitez leur envoyer un message.

4
Felix Buechner

Selon la documentation de l'API Telegram Bot vous devriez pouvoir spécifier @channelusername.

 Documentation screenshot

METTRE &AGRAVE; JOUR

Il n'y a aucune possibilité d'y parvenir. J'ai trouvé cette note dans le journal des modifications de l'API Telegram Bot:

Pour que cela fonctionne, le bot doit être un administrateur du canal.

 Documentation screenshot

1
German Lashevich