C# Telegram-API WTelegramClient Как программно нажать кнопку в сообщении от Телеграм-Бота?
Разрабатываемая программа общается с Телеграм-Ботом. Боту посылается текстовое сообщение. Бот отвечает на сообщение. Ответ содержит 3 кнопки. Задача: Как нажать на кнопку программно? Создаем Телеграм-клиента
_client = new WTelegram.Client(Config):
_user = await _client.LoginUserIfNeeded();
Декларируем функцию для получения обновлений от Телеграм
_client.Update += _client_Update;
Находим бота
var contacts = await _client.Contacts_Search("@Search_bot", 20);
contacts.users.TryGetValue(1911124859, out peerBot));
Отправляем запрос (сообщение) к Боту
var message = await _client.SendMessageAsync(peerBot, "REQUEST");
Получаем ответ
var differenceMessages = await _client.Updates_GetDifference(state.pts, state.date, state.qts);
Разбираем ответ
TL.Message tLMessage = null;
if (differenceMessages != null)
{
if(differenceMessages.NewMessages != null)
{
foreach (var difference in differenceMessages.NewMessages)
{
tLMessage = difference as TL.Message;
if (tLMessage != null) Log("Сообщение: " + tLMessage.message);
if(tLMessage != null && tLMessage.peer_id.ID == peerBot.ID )
{
if (!(tLMessage.reply_markup is ReplyMarkup replyMarkup)) continue;
TL.ReplyInlineMarkup replyInlineMarkup = (ReplyInlineMarkup)replyMarkup;
if (replyInlineMarkup.rows[2].buttons[0].Text == "Check texn on Button")
{
***//TODO Как нажать на эту кнопку?***
}
}
}
}
}
Ответы (1 шт):
Автор решения: ShuherVit
→ Ссылка
Это ответ от разработчика библиотеки Wizou. Оригинальный ответ тут. Выражаю ему большую признательность за потраченное время и точно указанную инструкцию по решению проблемы. Это код действительно "нажимает на кнопку".
if (replyInlineMarkup.rows[2].buttons[0] is KeyboardButtonCallback btnCallback)
{
var answer = await _client.Messages_GetBotCallbackAnswer(peerBot,
tLMessage.id, data: btnCallback.data);
}