c# Telegram.Bot SendMediaGroup Отправить одним постом фото и видео
Отправляю сообщение в канал:
var photos = post.Photo.Select(x => new InputMediaPhoto(x)).ToList();
botClient = new TelegramBotClient(TelegramToken);
Message[] messages = await botClient.SendMediaGroupAsync(
chatId: Channel,
inputMedia: photos
);
photos - список с изображениями. Или:
var videos = Video.Select(x => new InputMediaVideo(x)).ToList();
botClient = new TelegramBotClient(TelegramToken);
Message[] messages = await botClient.SendMediaGroupAsync(
chatId: Channel,
inputMedia: videos
);
videos - список с видеофайлами.
Как можно в один пост добавить вложение разных типов (фото+ видео либо фото + аудио)? Спасибо
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
inputMedia принимает тип IEnumerable<IAlbumInputMedia> где IAlbumInputMedia наследует IInputMedia, а IInputMedia общий для всего медиа, поэтому можно просто склеить коллекции.
var media = post.Video.Select(x => (IInputMedia)new InputMediaVideo(x))
.Concat(post.Photo.Select(x => (IInputMedia)new InputMediaPhoto(x)));
// вы уверены что хотите каждый раз пересоздавать нового бота при отправке сообщения?
botClient = new TelegramBotClient(TelegramToken);
Message[] messages = await botClient.SendMediaGroupAsync(
chatId: Channel,
inputMedia: media
);