如何在Telegram中获取给定漫游器中所有聊天ID的列表?

时间:2019-04-02 21:46:52

标签: java telegram telegram-bot telegram-webhook

我正在使用CRON作业创建电报机器人,因此它将在每个有趣的电影/系列发行中进行更新,并且希望它每月发送一次更新。

您可以在此GitHub Library

中查看它

我在stackoverflow related中也看到了其他主题。 但是,这种解决方案不适用于我的问题,或者至少我是这么认为的,因为我不必因为我的机器人将成为新闻通讯机器人而从每次聊天中获取更新。

基本上我有:

Program.cs

如果您已经知道要将消息发送到的chatId,则可以发送一条消息。但是,我希望有一个函数(或REST端点)返回我的机器人所附加的chetIds列表,以便可以进行以下操作:

var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();

1 个答案:

答案 0 :(得分:0)

您无法通过Telegram API获得所有chatId。参见official docs

我认为最好的解决方案是将所有chatId存储在数据库或文件中。 当用户启动漫游器或执行某些操作时,您可以从方法update的{​​{1}}变量中获取chatId:

public void onUpdateReceived(Update update)

基于文件的ID存储示例:

long chatId = update.hasMessage() 
           ? update.getMessage().getChat().getId() 
           : update.getCallbackQuery().getMessage().getChat().getId();