telegram-bot - create - telegram bot python
¿Cómo obtener Telegram chat_id para un usuario específico? (4)
¿Puedo saber qué es chat_id en telegram bot api? La documentación dice:
"Integer | Identificador único para el destinatario del mensaje - Id. De usuario o GroupChat"
No pude encontrar ninguna descripción al respecto. ¿Cómo puedo obtenerlo para un usuario o grupo?
Creé un bot para obtener la identificación de UserChat o GroupChat, solo envíe el /my_id
a telegram bot @get_id_bot
.
No solo funciona para el ID de chat de usuario, sino también para el ID de chat de grupo.
Para obtener el ID de chat de grupo, primero debe agregar el bot al grupo, luego enviar /my_id
en el grupo.
Here está el enlace al bot.
Puedes compartir el contacto con tu bot y, a través de / getUpdates, obtienes el objeto "contact"
Usando la API de Perl, puede obtenerlo de esta manera: primero envíe un mensaje al bot desde Telegram, luego emita un getUpdates y el id de chat debe estar allí:
#!/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";
La identificación debe estar en chat_id pero puede depender del resultado, así que también agregué un volcado de todo el resultado.
Puede instalar la API de Perl desde https://github.com/Robertof/perl-www-telegram-botapi . Depende de su sistema, pero lo instalé fácilmente ejecutándolo en mi servidor Linux:
$ sudo cpan WWW::Telegram::BotAPI
Espero que esto ayude
Las actualizaciones de mensajes que reciba a través de getUpdates
o su webhook contendrán la ID de chat para el mensaje específico. Estará contenido bajo la clave message.chat.id
.
Esto parece ser la única forma en que puede recuperar la ID de chat. Por lo tanto, si desea escribir algo en el que el bot inicie la conversación, probablemente tendrá que almacenar la identificación del chat en relación con el usuario en algún tipo de almacén de valores de clave-> MemCache o Redis.
Creo que su documentación sugiere algo similar aquí, https://core.telegram.org/bots#deep-linking-example . Puede utilizar la vinculación profunda para iniciar una conversación sin requerir que el usuario escriba un mensaje primero.