Как получить пользователя chat_id
в Telegram бота API? В документации сказано:
Целое число | Уникальный идентификатор получателя сообщения - идентификатор пользователя или группы в чате
Как получить пользователя chat_id
в Telegram бота API? В документации сказано:
Целое число | Уникальный идентификатор получателя сообщения - идентификатор пользователя или группы в чате
Обновления сообщений, которые вы получаете через getUpdates
, или ваш веб-чек будет содержать идентификатор чата для конкретного сообщения. Он будет содержаться под клавишей message.chat.id
.
Это похоже на единственный способ получить идентификатор чата. Поэтому, если вы хотите написать что-то, где бот инициирует разговор, вам, вероятно, придется хранить идентификатор чата по отношению к пользователю в каком-то хранилище значений key- > value, например MemCache или Redis.
Я считаю, что их документация предлагает нечто подобное здесь, https://core.telegram.org/bots#deep-linking-example. Вы можете использовать глубокую ссылку, чтобы начать разговор, не требуя от пользователя сначала ввести сообщение.
Я создал бота, чтобы получить идентификатор пользователя или GroupChat,
просто отправьте /my_id
в телеграмму бота @get_id_bot
.
Он работает не только для пользовательского чата, но и для идентификатора группового чата.
Чтобы получить идентификатор группового чата, сначала вам нужно добавить бота в группу,
затем отправьте /my_id
в группу.
Здесь ссылка на бота.
Вы можете просто поделиться контактом с вашим ботом, а через /getUpdates вы получите объект "контакт"
Есть бот, который выводит ваш идентификатор чата при начале разговора.
Просто найдите @chatid_echo_bot
и нажмите /start
. Будет отображен ваш идентификатор чата.
Другой вариант - @getidsbot
, который дает вам гораздо больше информации. Этот бот также предоставляет информацию о перенаправленном сообщении (от пользователя к пользователю, идентификаторам чад и т.д.), Если вы пересылаете сообщение боту.
Используя 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
Надеюсь это поможет