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

时间:2015-12-30 08:50:59

标签: c# asp.net telegram-bot

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

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

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

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

但它不适用于频道。

3 个答案:

答案 0 :(得分:2)

不幸的是,它还不可能。(他们可能会在将来提出一些建议)作为管理员,你可以发送消息到频道。

答案 1 :(得分:0)

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

  1. 您的机器人应由管理员添加到频道中。
  2. 您将机器人privacy设置为disabled
  3. 步骤1可帮助您的机器人加入频道,以便查看消息。

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

答案 2 :(得分:0)

您可以接收频道信息和频道信息编辑。

但是您不会在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
    }
}