Исключение MEDIA_EMPTY при отправке входящих мультимедиа в другой чат с помощью WTelegramClient С#C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Исключение MEDIA_EMPTY при отправке входящих мультимедиа в другой чат с помощью WTelegramClient С#

Сообщение Anonymous »

Я изменил пример «Прослушайте обновление здесь», чтобы отправить входящее сообщение другому пользователю или в чат, вот мой код:

Код: Выделить всё

public MessageMedia MediaMSG=null;
....
Manager = client.WithUpdateManager(Client_OnUpdate/*, "Updates.state"*/);
var dialogs = .client.Messages_GetAllDialogs(); // dialogs = groups/channels/users
dialogs.Wait();
dialogs.Result.CollectUsersChats(Manager.Users, Manager.Chats);
/***/
private async Task Client_OnUpdate(Update update)        {
switch (update)
{                case UpdateNewMessage unm:
await HandleMessage(unm.message);
break;
}
}
/***/
private Task HandleMessage(MessageBase messageBase, bool edit = false)
{
switch (messageBase)
{
case TL.Message m:

InputPeer peer = null;
//set peer a value for example user or chat
//peer =.....
Task PostResult = null;
CancellationTokenSource cancellationSource = new CancellationTokenSource();
CancellationToken cancellation = cancellationSource.Token;
MediaMSG = m.media;
MessageMediaPhoto d = null;
if (MediaMSG.GetType() == typeof(MessageMediaPhoto))
{
d=new MessageMediaPhoto();
d.flags = ((MessageMediaPhoto)MediaMSG).flags;
d.photo = ((MessageMediaPhoto)MediaMSG).photo;
d.ttl_seconds= ((MessageMediaPhoto)MediaMSG).ttl_seconds;
MessageBox.Show(d.flags.ToString() + ":" + d.photo.ID + " :" + d.ttl_seconds+":"+ m.flags.ToString());
File.WriteAllText("a.txt", d.flags.ToString() + ":" + d.photo.ID + " :" + d.ttl_seconds + ":" + m.flags.ToString());

}

PostResult = client.SendMessageAsync(peer, m.message, d?.ToInputMedia());

PostResult.Wait(cancellation);
break;
case MessageService ms: /*Console.WriteLine($"{Peer(ms.from_id)} in {Peer(ms.peer_id)} [{ms.action.GetType().Name[13..]}]");*/ break;
}
return Task.CompletedTask;
}
когда сообщение представляет собой текст, оно отправлено успешно, но когда оно содержит медиафайлы, например текст и фотографию, я получаю исключение MEDIA_EMPTY,
Это не конкретное сообщение, а любое сообщение с медиаУзел инициализируется успешно, потому что, когда входящее сообщение представляет собой текстовое сообщение, оно отправлено успешно, но когда входящее сообщение содержит носитель, оно вызывает исключение MEDIA_EMPTY,
носитель не имеет значения NULL, даже если он имеет значение NULL, не должно вызывать исключение, поскольку носитель необязательный аргумент и по умолчанию принимает значение null, клиент.SendMessageAsync отправляет медиафайл через:

Код: Выделить всё

client.Messages_SendMedia(peer, m.media.ToInputMedia(), m.message,Helpers.RandomLong());
Я пробую напрямую:

Код: Выделить всё

client.Messages_SendMedia(peer, m.media.ToInputMedia(), m.message,Helpers.RandomLong());
но происходит исключение MEDIA EMPTY, я печатаю информацию о мультимедиа, исходный носитель - это фотография в формате PNG, а информация о мультимедиа выглядит следующим образом:

Код: Выделить всё

d.flags : has_photo
d.photo.ID : 5949672085112603217
d.ttl_seconds : 0
m.flags : has_from_id, has_media, has_replies
Я пытаюсь сохранить медиа-фото на диск:

Код: Выделить всё

var filename = $"{d.photo.ID}.jpg";

var fileStream = File.Create(filename);
var type =  client.client.DownloadFileAsync((Photo)d.photo, fileStream);
type.Wait();
fileStream.Close();
но это вызывает исключение FILE_REFERENCE_EXPIRED
я тестировал его в публичном и приватном чате, но исключение все равно

Код: Выделить всё

400
MEDIA_EMPTY
The provided media object is invalid
пожалуйста, помогите мне это исправить?

Подробнее здесь: https://stackoverflow.com/questions/785 ... legramclie
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Воспроизведение мультимедиа с использованием URL-адреса в Android с помощью мультимедиа
    Anonymous » » в форуме Android
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • В C# следует ли использовать string.Empty или String.Empty или "" для инициализации строки?
    Anonymous » » в форуме C#
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous
  • Как отличить Null или Empty? по каким критериям Null и Empty лечат?
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Безопасно ли создавать исключение в WTelegramClient OnOther?
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • WTelegramClient Messages_GetBotCallbackAnswer всегда выдает исключение BOT_RESPONSE_TIMEOUT
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»