c# Telegram API Пост с несколькими картинками и текстом
нужно отправить пост с несколькими картинками и текстом.
Как делаю:
public async void NewPost(Post post)
{
botClient = new TelegramBotClient("APIKEY");
Message[] messages = await botClient.SendMediaGroupAsync(
chatId: "@dxfnxcvn",
inputMedia: post.Photo.Select(x => new InputMediaPhoto(x) { Caption = post.Msg})
);
}
Это List изображений post.Photo
Добавляю текст: Caption = post.Msg
Пост публикуется, но текст виден только если в telegram открыть фото.

Чтобы текст был виден под постом нужно что бы Caption был указан только для одного изображения, а не для всех, тогда пост будет выглядеть вот так :
Как указать Caption только для первого изображения со списка?
Спасибо
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Достаньте коллекцию заранее в локальную переменную, добавьте заголовок, и только потом отправляйте
public async void NewPost(Post post)
{
var photos = post.Photo.Select(x => new InputMediaPhoto(x)).ToList();
if (photos.Count > 0)
photos[0].Caption = post.Msg;
try
{
botClient = new TelegramBotClient("APIKEY");
Message[] messages = await botClient.SendMediaGroupAsync(
chatId: "@dxfnxcvn",
inputMedia: photos
);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message); // для async void обязательно обрабатывайте все возможные исключения, иначе вы их просто не увидите
}
}
Кстати, вам наверное не нужно делать new TelegramBotClient для каждого сообщения, а сделать экземпляр клиента один раз, и просто переиспользовать его.
