c# - 我如何知道 telegram 用户是否加入了我的 channel ?

标签 c# telegram telegram-bot

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

我使用 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)
    {
        //??????????????
    }

是否有一种方法可以让 Telegram Bot 访问 channel 成员列表?我应该在 IsMember() 方法中写什么?

非常感谢


通过将 telegram.bot nugget 更新到 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;
    }

谢谢

最佳答案

您可以使用getChatMember方法,请参阅以下示例。

Awesome Telegram Bot

关于c# - 我如何知道 telegram 用户是否加入了我的 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46542451/

相关文章:

php - 电报 BOT - setWebhook 不工作

C# 不信任已安装的证书

python - 如何通过代码重新启动pythonanywhere控制台

c# - 如何通过webhook获取Telegram.Bot.Types.Update?

php - 如何从服务器为 Telegram BOT 定义命令

python - 如何使用 python 将下一个文本存储在 Telegram Bot 中

javascript - 通过 Node.JS 的 Telegram 机器人内联键盘

c# - IEnumerable<IEnumerable<T>> 到 IEnumerable<T> 使用 LINQ

c# - 互操作 C# 到 C++ 结构

c# - 为什么 System.Timers.Timer elapsed 在关闭并重新打开表单后多次触发