user12503028
user12503028

Reputation:

Telegram API Client doesn't find group/send message

Im using TLSharp API Client for sending messages to groups, TLSharp is C#, but im trying to use it for VB.NET

C# Code:

 //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");

My VB.NET Code:

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")

The error i get:

Could not find public member 'GetAwaiter' in type 'TLDialogs'.'

I know it's not practical to convert it to vb.net, but I need it to integrate it into a project written in vb

Upvotes: 0

Views: 364

Answers (1)

stevec
stevec

Reputation: 62

I don't think that the client.GetUserDialogsAsync() method returns anything that is awaitable, so you should probably only have one Await in the line Dim dialogs = Await ((Await client.GetUserDialogsAsync())), and it may also require a cast:

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

Upvotes: 1

Related Questions