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
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.
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.
Vous pouvez simplement partager le contact avec votre bot et, via/getUpdates, vous obtenez l'objet "contact"
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