Подтвердить что ты не робот

Как получить Telegram chat_id для конкретного пользователя?

Как получить пользователя chat_id в Telegram бота API? В документации сказано:

Целое число | Уникальный идентификатор получателя сообщения - идентификатор пользователя или группы в чате

4b9b3361

Ответ 1

Обновления сообщений, которые вы получаете через getUpdates, или ваш веб-чек будет содержать идентификатор чата для конкретного сообщения. Он будет содержаться под клавишей message.chat.id.

Это похоже на единственный способ получить идентификатор чата. Поэтому, если вы хотите написать что-то, где бот инициирует разговор, вам, вероятно, придется хранить идентификатор чата по отношению к пользователю в каком-то хранилище значений key- > value, например MemCache или Redis.

Я считаю, что их документация предлагает нечто подобное здесь, https://core.telegram.org/bots#deep-linking-example. Вы можете использовать глубокую ссылку, чтобы начать разговор, не требуя от пользователя сначала ввести сообщение.

Ответ 2

Я создал бота, чтобы получить идентификатор пользователя или GroupChat, просто отправьте /my_id в телеграмму бота @get_id_bot.

Он работает не только для пользовательского чата, но и для идентификатора группового чата.

Чтобы получить идентификатор группового чата, сначала вам нужно добавить бота в группу, затем отправьте /my_id в группу.

Здесь ссылка на бота.

Ответ 3

Вы можете просто поделиться контактом с вашим ботом, а через /getUpdates вы получите объект "контакт"

Ответ 4

Есть бот, который выводит ваш идентификатор чата при начале разговора.

Просто найдите @chatid_echo_bot и нажмите /start. Будет отображен ваш идентификатор чата.

Chat id bot screenshot

Другой вариант - @getidsbot, который дает вам гораздо больше информации. Этот бот также предоставляет информацию о перенаправленном сообщении (от пользователя к пользователю, идентификаторам чад и т.д.), Если вы пересылаете сообщение боту.

Ответ 5

Используя Perl API, вы можете получить его следующим образом: сначала вы отправляете сообщение боту из Telegram, затем выдает getUpdates и там должен быть идентификатор чата:

#!/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";

Идентификатор должен быть в chat_id, но он может зависеть от результата, поэтому я также добавил дамп всего результата.

Вы можете установить Perl API по адресу https://github.com/Robertof/perl-www-telegram-botapi. Это зависит от вашей системы, но я легко установил ее на свой сервер Linux:

$ sudo cpan WWW::Telegram::BotAPI

Надеюсь это поможет