【问题标题】:How do I know if a telegram user joined my channel?我如何知道电报用户是否加入了我的频道?
【发布时间】:2017-10-03 10:28:05
【问题描述】:

我正在编写一个 C# 桌面应用程序。在这个应用程序中,我编写了一个用户的电报 ID,它表示该用户是否是频道的成员。我的机器人是频道的管理员。

我使用 telegram.bot v9 nugget 并整天搜索这个问题。

我尝试在 v13 中使用 GetChatMembersCountAsync() 和许多其他方法,但没有奏效。

    static private Api bot = new Api("Token");
    long id;
    string channel="@ChannelName";

    public Main()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        id = long.Parse(textBox7.Text);
        if (IsMember(id,channel))
            MessageBox.Show("This user is member of channel");
        else
            MessageBox.Show("This user is not a member of channel");

    }

    private bool IsMember(long id,string channelName)
    {
        //??????????????
    }

有没有一种方法可以让电报机器人访问频道成员列表? IsMember() 方法应该写什么?

非常感谢


通过将 telegram.bot 块更新到 v10 并使用 GetChatMemberAsync 方法解决了这个问题。

    private bool IsMember(long id,string channelName)  
    {  
        var t = bot.GetChatMemberAsync(channelName, id);
            if (t.Result.Status.ToString().Length > 25)
                return false;
            return true;
    }

谢谢

【问题讨论】:

    标签: c# telegram telegram-bot


    【解决方案1】:

    您可以使用getChatMember 方法来执行此操作,请参见以下示例。

    【讨论】:

    • 我不确定这是否是 OP 所要求的......但这样的问题让我想知道为什么我们有手册,所以......我猜有什么事情吗?
    【解决方案2】:

    关于Telegram Bot API documentation,目前没有任何方法可供机器人获取聊天成员(频道或群组)的列表。 这是一个小技巧: 您可以检查来自 Telegram 的更新(消息)到您的 webhook,如果 new_chat_members 字段有值并且 chat_id 字段表明它来自您的频道,那么您可以保存有关最近加入您频道的用户的信息.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 1970-01-01
      相关资源
      最近更新 更多