当前位置: 首页 > 知识库问答 >
问题:

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

程飞星
2023-03-14

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

我试图从电报频道获取所有信息,并在ASP.NET网页上显示出来(c#)

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

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

但它不适用于该频道。

共有3个答案

杜昆琦
2023-03-14

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

  1. 您的机器人由其管理员添加到频道中。
  2. 您将机器人的隐私设置为禁用

步骤 1 可帮助机器人加入频道,以便它看到消息。

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

艾才良
2023-03-14

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

但您不会在< code>OnMessage事件中接收到它,您可以从< code>OnUpdate中以< code>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
    }
}
叶允晨
2023-03-14

不幸的是这还不可能。(他们可能会在未来提出一些东西)作为管理员,你可以只发送消息到渠道。

 类似资料:
  • 嗨,我正在尝试建立一个网站登录系统,用户可以使用电报登录。我希望实现此工作流: < li >用户选择通过电报登录/注册。 < li >用户输入他们的用户名(@ExampleJoe)。 < li >通过我的电报机器人(@ExampleBot)向他们发送6位验证码。 < li >用户将收到的6位数字代码输入到我的网站,并被允许进入。 我在步骤 2-3 中遇到了问题,我的机器人可以仅使用其用户名向他们发

  • 我使用curl更新我的公共频道。这种语法: 但是私人频道的是什么?它不是你在私人邀请中的那个。 因为现在我们可以在所有方法中传递通道用户名(格式为@channelusername)来代替chat\u id(而不是forwardMessage中的from\u chat\u id)。但是我管理的私人频道的@channelusername是什么?

  • 在我们的小型初创公司中,我们使用GitLab进行开发,使用Telegram进行开发人员和PO之间的内部沟通。由于PO希望立即看到进度,因此我们设置了GitLab Pipeline,以便在每次提交后将预览版部署在Web服务器上。现在我们想扩展管道。这样在部署后通过Telegram组发送通知。 所以问题是,这可能吗?如果可能,怎么可能? 编辑:因为我已经实现了,这不是一个真正的问题。我想把答案贴在这里

  • 我已经设置了一个电报网络钩子使用node.js/express: 当我获取时,我可以收到我的机器人控制台: 现在我想从机器人程序接收数据,这样当用户访问时https://telegram.me/mybot?start=xyz并按bot,bot应该在的帖子中收到 以下是我收到邮件的路线: 但当用户访问时,我发现机器人中什么也没有发生https://telegram.me/mybot?start=xy

  • 但是私有通道的是什么?不是你私人邀请里的那个。 因为现在我们可以在所有方法中传递通道用户名(格式为@channelusername),而不是forwardMessage中的from_chat_id。但是我管理的私人频道的@ChannelUsername是什么?

  • 我只想让我的机器人接收特定频道的消息,比如当电报用户加入电报频道时。1.我不是频道创建者或管理员。2.我不想让我的机器人成为频道管理员。3.我不想要求每个频道管理员将我的机器人添加到频道成员中。 你知道通过电报客户端UI或API制作机器人、加入频道的方法吗? 有没有另一种方法可以让机器人接收频道的更新?