web-dev-qa-db-fra.com

Comment obtenir Telegram chat_id pour un utilisateur spécifique?

Comment obtenir l'utilisateur chat_id dans l'API de bot Telegram? La documentation dit:

Entier | Identifiant unique pour le destinataire du message - identifiant utilisateur ou identifiant GroupChat

48
Ameer Mousavi

Les mises à jour du message que vous recevez via getUpdates ou votre Webhook contiendra l'ID de discussion pour le message spécifique. Il sera contenu sous la touche message.chat.id.

Cela semble être le seul moyen de récupérer l'identifiant de discussion. Donc, si vous voulez écrire quelque chose où le bot initie la conversation, vous devrez probablement stocker l'ID de discussion en relation avec l'utilisateur dans une sorte de magasin clé-> valeur comme MemCache ou Redis.

Je crois que leur documentation suggère quelque chose de similaire ici, https://core.telegram.org/bots#deep-linking-example . Vous pouvez utiliser la liaison en profondeur pour engager une conversation sans demander à l'utilisateur de taper d'abord un message.

31
Chris Brand

J'ai créé un bot pour obtenir l'identifiant d'utilisateur ou GroupChat, il suffit d'envoyer le /my_id au télégramme bot @get_id_bot.

Cela ne fonctionne pas uniquement pour l'ID de discussion utilisateur, mais également pour l'ID de discussion de groupe.

Pour obtenir l'ID de discussion de groupe, vous devez d'abord ajouter le bot au groupe, puis envoyer /my_id dans le groupe.

Here est le lien vers le bot.

36
fredy kardian

Vous pouvez simplement partager le contact avec votre bot et, via/getUpdates, vous obtenez l'objet "contact"

7
Ian

Il existe un bot qui fait écho à votre identifiant de discussion lors du démarrage d'une conversation.

Il suffit de rechercher @chat_id_echo_bot et de taper /start. Cela fera écho à votre identifiant de chat.

Chat id bot screenshot

5
Ramazan Polat

En utilisant l'API Perl, vous pouvez l'obtenir de la manière suivante: vous envoyez d'abord un message au bot depuis Telegram, puis émettez un getUpdates et l'identifiant de chat doit être présent:

#!/usr/bin/Perl

use Data::Dumper;
use WWW::Telegram::BotAPI;

my $TOKEN = 'blablabla';
my $api = WWW::Telegram::BotAPI->new (
    token => $TOKEN
) or die "I can't connect";

my $out = $api->api_request ('getUpdates');
warn Dumper($out);
my $chat_id = $out->{result}->[0]->{message}->{chat}->{id};
print "chat_id=$chat_id\n";

L'identifiant doit être dans chat_id , mais cela peut dépendre du résultat. J'ai donc également ajouté un vidage du résultat complet.

Vous pouvez installer l'API Perl à partir de https://github.com/Robertof/Perl-www-telegram-botapi . Cela dépend de votre système mais j’ai installé facilement en exécutant ceci sur mon serveur Linux:

$ Sudo cpan WWW::Telegram::BotAPI

J'espère que cela t'aides

5
Francesc Guasch