如何在Telegram bot API中获取用户chat_id
?
文档说:
整数|邮件收件人的唯一标识符 - User或GroupChat id
答案 0 :(得分:34)
我创建了一个bot来获取User或GroupChat id,
只需将/my_id
发送到电报机器人@get_id_bot
。
它不仅适用于用户聊天ID,也适用于群聊ID。
要获取群组聊天ID,首先您必须将群组添加到群组,
然后在小组中发送/my_id
。
Here是机器人的链接。
答案 1 :(得分:30)
您通过getUpdates
收到的消息更新,或者您的webhook将包含特定消息的聊天ID。它将包含在message.chat.id
密钥下。
这似乎是您能够检索聊天ID的唯一方法。因此,如果您想要编写机器人启动对话的内容,您可能必须在某种键 - >值存储(如MemCache或Redis)中存储与用户相关的聊天ID。
我相信他们的文档提出了类似的内容,https://core.telegram.org/bots#deep-linking-example。您可以使用深层链接发起对话,而无需用户先输入消息。
答案 2 :(得分:7)
您可以与机器人分享联系人,通过/ getUpdates,您可以获得“联系”对象
答案 3 :(得分:5)
使用Perl API,您可以通过以下方式获取:首先从Telegram向bot发送消息,然后发出getUpdates,聊天ID必须在那里:
#!/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";
id应该在 chat_id 中,但它可能取决于结果,所以我还添加了整个结果的转储。
您可以从https://github.com/Robertof/perl-www-telegram-botapi安装Perl API。这取决于您的系统,但我在Linux服务器上轻松运行它:
$ sudo cpan WWW::Telegram::BotAPI
希望这有帮助
答案 4 :(得分:5)
有一个机器人在开始对话时会回显您的聊天ID。
只需搜索@Test
@DisplayName ( "NameGoesHere" )
void parse () {
// ------| Arrange |--------------------------
// ------| Act |------------------------------
// ------| Assert |---------------------------
}
,然后点击BODY
。它将回显您的聊天ID。
答案 5 :(得分:3)
首先,在包含您的漫游器的聊天室中发布一条消息(频道,群组提及该漫游器或一对一聊天)。然后,只需运行:
curl https://api.telegram.org/bot<TOKEN>/getUpdates | jq
如果您没有安装jq,请随意删除| jq
部分,它仅对漂亮的打印有用。你应该得到这样的东西:
您可以在返回的json对象中看到聊天ID,以及聊天名称和相关消息。
答案 6 :(得分:1)
直接从documentation退出:
假设网站example.com想通过Telegram机器人向其用户发送通知。他们可以为ID为123的用户启用通知。
memcache_key = "vCH1vGWJxfSeofSAs0K5PA"
/start
开头的传入消息中传递的参数查询Memcached。如果密钥存在,请将传递给Webhook的chat_id记录为用户123的telegram_chat_id。从内存缓存中删除密钥。telegram_chat_id
。如果是,请使用Bot API中的sendMessage
方法向他们发送电报消息。答案 7 :(得分:0)
每当用户与机器人通信时,它都会发送如下信息:
$response = {
"update_id":640046715,
"message":{
"message_id":1665,
"from":{"id":108177xxxx,"is_bot":false,"first_name":"Suresh","last_name":"Kamrushi","language_code":"en"},
"chat":{"id":108xxxxxx,"first_name":"Suresh","last_name":"Kamrushi","type":"private"},
"date":1604381276,
"text":"1"
}
}
所以你可以像这样访问聊天:
$update["message"]["chat"]["id"]
假设您使用的是 PHP。