簡體   English   中英

我怎么知道電報用戶是否使用電報bot API加入了我的頻道?

[英]How do I know if a telegram user joined my channel using telegram bot api?

請查看此鏈接this
基於第二個鏈接,我這樣做:

public static class Program {
    private static readonly TelegramBotClient Bot = new TelegramBotClient("My Token");

    public static void Main(string[] args) {

        var me = Bot.GetMeAsync().Result;
        Console.Title = me.Username;

        Bot.OnMessage += BotOnMessageReceived;
        Bot.OnMessageEdited += BotOnMessageReceived;
        Bot.OnCallbackQuery += BotOnCallbackQueryReceived;
        Bot.OnInlineQuery += BotOnInlineQueryReceived;
        Bot.OnInlineResultChosen += BotOnChosenInlineResultReceived;
        Bot.OnReceiveError += BotOnReceiveError;

        Bot.StartReceiving(Array.Empty < UpdateType > ());
        Console.WriteLine($ "Start listening for @{me.Username}");
        Console.ReadLine();
        Bot.StopReceiving();
    }

    private static async void BotOnMessageReceived(object sender, MessageEventArgs messageEventArgs) {
        var message = messageEventArgs.Message;

        if (message == null || message.Type != MessageType.Text) return;

        bool is_member_of_channel = Is_Member_Of_Channel("@Channel_Name", message.From.Id);
    }

    private static bool Is_Member_Of_Channel(string channel_name, int user_id) {
        var t = Bot.GetChatMemberAsync(channel_name, user_id);
        if (t.Result.Status.ToString().Length > 25) return false;
        return true;
    }
}

但我有這個錯誤:

mscorlib.dll中出現“System.AggregateException”類型的異常,但未在用戶代碼中處理

附加信息:發生一個或多個錯誤。

有什么問題,我該如何解決?

什么是頻道名稱?

我對頻道名稱做得對嗎?

GetChatMemberAsync()告訴頻道名稱是ChatId ,我怎樣才能獲得我頻道的ChatId

有什么問題,我該如何解決?

您的機器人應該在目標渠道中以administrator身份添加。
目標渠道應該是public

什么是頻道名稱?

正確的是: @Channel_Name

我對頻道名稱做得對嗎?

是,

這是正確的方法:

private static bool Is_Member_Of_Channel(string channel_name, int user_id)
{
    //Status Values
    //Creator
    //Member
    //Left
    var t = Bot.GetChatMemberAsync(channel_name, user_id);
    if (t.Result.Status.ToString() == "Left")
        return false;
    return true;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM