如何使用Telegram API从Telegram频道获取消息



如何使用注册为频道管理员的机器人访问Telegram频道消息?

我正在尝试从Telegram频道获取所有消息,并在ASP.NET网页(c#)中显示它们

当新消息直接发送到机器人时,我能够获得更新:

var json = wc.DownloadString(" https://api.telegram.org/bot<token>/getUpdates");

但它对频道不起作用。

不幸的是,这还不可能。(他们将来可能会想出一些办法)作为管理员,你可以直接向频道发送消息。

您可以接收频道帖子和频道帖子编辑。

但你不会在OnMessage事件中收到它,你可以从OnUpdate收到它作为Message对象,如下代码:

注意:机器人程序必须是通道中的管理员。

private static readonly TelegramBotClient Bot = new TelegramBotClient("my-real-token");
public static void Main(string[] args)
{
    Bot.StartReceive(UpdateType.ChannelPost, UpdateType.EditedChannelPost);
    Bot.OnUpdate += Bot_OnUpdate;
}
    
public static void OnUpdate(UpdateEventArgs e)
{
    if (e.Update.Type == UpdateType.ChannelPost)
    {
        Message post = e.Update.ChannelPost;
        //TODO: Store channel post
    }
    else if (e.Update.Type == UpdateType.EditedChannelPost)
    {
        Message editedPost = e.Update.EditedChannelPost;
        //TODO: Store edited channel post
    }
}

到目前为止,唯一的方法如下:

  1. 您的机器人程序将由其管理员添加到频道中
  2. 您将机器人程序的privacy设置为disabled

步骤1帮助你的机器人加入频道,这样它就能看到消息。

第2步让你的机器人监听频道的所有消息。

最新更新