Клиент Telegram API не находит группу / не отправляет сообщение - PullRequest
0 голосов
/ 28 мая 2020

Я использую клиент API TLSharp для отправки сообщений группам, TLSharp - C#, но я пытаюсь использовать его для VB. NET

C# Код:

 //get user dialogs
  var dialogs = (TLDialogsSlice) await client.GetUserDialogsAsync();

  //find channel by title
  var chat = dialogs.Chats
    .Where(c => c.GetType() == typeof(TLChannel))
    .Cast<TLChannel>()
    .FirstOrDefault(c => c.Title == "<channel_title>");

  //send message
  await client.SendMessageAsync(new TLInputPeerChannel() { ChannelId = chat.Id, AccessHash = chat.AccessHash.Value }, "OUR_MESSAGE");

Мой VB. NET Код:

Dim dialogs = Await ((Await client.GetUserDialogsAsync()))
            Dim chat = dialogs.Chats.lists.Where(Function(c) c.[GetType]() = GetType(TLChat)).Cast(Of TLChat)().FirstOrDefault(Function(c) c.title = "Group1")
            Dim ChatId
            Await client.SendMessageAsync(New TLInputPeerChat() {ChatId = chat.Id}, "TEST MSG")

Я получаю ошибку:

Не удалось найти publi c член GetAwaiter в типе TLDialogs.

Я знаю, что преобразовывать его в vb. net непрактично, но он мне нужен, чтобы интегрировать его в проект, написанный на vb

1 Ответ

1 голос
/ 28 мая 2020

Я не думаю, что метод client.GetUserDialogsAsync() возвращает что-то ожидаемое, поэтому вам, вероятно, следует иметь только один Await в строке Dim dialogs = Await ((Await client.GetUserDialogsAsync())), и для него также может потребоваться приведение:

Dim dialogs = DirectCast(Await client.GetUserDialogsAsync(), TLDialogsSlice)
...