コード例 #1
0
        public static async Task <bool> JoinChannel(string channelusername)
        {
            //finding channel
            var update = await _client.SearchUserAsync(channelusername);

            var channel = update.Chats.Where(c => c.GetType() == typeof(TLChannel)).Cast <TLChannel>().FirstOrDefault();

            if (channel != null)
            {
                var request = new TLRequestJoinChannel()
                {
                    Channel = new TLInputChannel()
                    {
                        AccessHash = (long)channel.AccessHash, ChannelId = channel.Id
                    }
                };

                TLUpdates resJoinChannel = await _client.SendRequestAsync <TLUpdates>(request);

                if (resJoinChannel != null)
                {
                    Console.WriteLine($"------*successfully Joined to {channel.Title}.  ");
                    return(true);
                }

                return(false);
            }
            else
            {
                return(false);
            }
        }
コード例 #2
0
        public async Task JoinCannel(string channelName)
        {
            var channelInfo = (await _client.SendRequestAsync<TeleSharp.TL.Contacts.TLResolvedPeer>(
             new TeleSharp.TL.Contacts.TLRequestResolveUsername
             {
                 Username = channelName,

             }).ConfigureAwait(false)).Chats[0] as TLChannel;

            var Request = new TLRequestJoinChannel()
            {
                Channel = new TLInputChannel
                {
                    ChannelId = channelInfo.Id,
                    AccessHash = (long)channelInfo.AccessHash
                }
            };

            try
            {
                var Respons = await _client.SendRequestAsync<Boolean>(Request);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.StackTrace);
            }
        }