【发布时间】:2019-03-16 22:17:50
【问题描述】:
请看this link & 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;
}
}
但我有这个错误:
类型异常 'System.AggregateException' 发生在 mscorlib.dll 中,但不是 在用户代码中处理
附加信息:出现一个或多个错误。
问题是什么?我该如何解决?
什么是频道名称?
频道名称我做对了吗?
GetChatMemberAsync() 告诉频道名称是ChatId,我怎样才能获得我频道的ChatId?
【问题讨论】:
标签: c# telegram-bot