首页 > 解决方案 > TLSharp 获取组列表问题

问题描述

我无法获取组的完整列表,响应仅返回新组

我的代码:

var dialogs = (TLDialogsSlice)await client.GetUserDialogsAsync();
                    var chats = dialogs.Chats
                      .Where(c => c.GetType() == typeof(TLChat))
                      .Cast<TLChat>();

                    Console.WriteLine("Count : " + chats.Count());

我用这个方法:

public async Task<TLAbsDialogs> GetUserDialogsAsync()
        {
            var peer = new TLInputPeerChat();
            return await client.SendRequestAsync<TLAbsDialogs>(
                new TLRequestGetDialogs() { OffsetPeer = peer, Limit = int.MaxValue });
        }


var dialogs = await GetUserDialogsAsync() as TLDialogsSlice;
                    var chats = dialogs.Chats
                               .OfType<TLChat>()
                               .ToList();
                    Console.WriteLine("Count : " + chats.Count());

Limit = int.MaxValue0时输出 15 组,当Limit = int.MinValue时输出 7 组

但问题是我在电报上加入了超过 15 个群组,为什么我无法获取所有群组?

标签: c#telegramtlsharp

解决方案


PR有更新

最终代码是:

var AllChats = await client.GetAllChats();
var groups = AllChats.Chats.OfType<TLChat>().ToList();
Console.WriteLine("Count : " + groups.Count());

现在我可以使用TLSharp.Core/TelegramClient.csGetAllChats()中的方法获取完整的聊天列表


推荐阅读