コード例 #1
0
        public async Task <Channel> GetChannelAsync(string username)
        {
            var req = new TLRequestResolveUsername()
            {
                Username = username
            };
            TLResolvedPeer peer;

            try
            {
                peer = await _client.SendRequestAsync <TLResolvedPeer>(req);
            }
            catch (InvalidOperationException)
            {
                return(null);
            }
            if (peer.Chats.Count == 0)
            {
                return(null);
            }
            TLChannel channel = (TLChannel)peer.Chats[0];

            if (!channel.AccessHash.HasValue)
            {
                return(null);
            }
            return(new Channel()
            {
                ChannelId = channel.Id,
                AccessHash = channel.AccessHash ?? 0,
                Title = channel.Title,
                Username = channel.Username
            });
        }
コード例 #2
0
        public async Task <TLResolvedPeer> ResolveUsernameAsync(string usernameToResolve, CancellationToken token = default(CancellationToken))
        {
            if (usernameToResolve.StartsWith("@"))
            {
                usernameToResolve = usernameToResolve.Substring(1);
            }

            var req = new TLRequestResolveUsername()
            {
                Username = usernameToResolve
            };

            return(await SendAuthenticatedRequestAsync <TLResolvedPeer>(req, token)
                   .ConfigureAwait(false));
        }
コード例 #3
0
        public async Task <TLAbsUser> ResolveUsername(string username)
        {
            await client.ConnectAsync();

            var req = new TLRequestResolveUsername
            {
                username = username
            };

            TLResolvedPeer result = await client.SendRequestAsync <TLResolvedPeer>(req);

            var list = result.users.lists.ToList();
            var user = list.FirstOrDefault();

            return(user);
        }