예제 #1
0
        public async Task <bool> JoinChannel(string channelname)
        {
            try
            {
                TLChannel channel = await FindChannel(channelname);

                var req = new TeleSharp.TL.Channels.TLRequestJoinChannel()
                {
                    Channel = new TLInputChannel
                    {
                        ChannelId  = channel.Id,
                        AccessHash = (long)channel.AccessHash
                    }
                };
                TLUpdates resJoinChannel = await client.SendRequestAsync <TLUpdates>(req);

                return(true);
            }
            catch (Exception ex)
            {
                if (ex.Message == "AUTH_KEY_UNREGISTERED")
                {
                    bool sessionRemoved = this.RemoveSession();
                    if (sessionRemoved)
                    {
                        await this.Reconnect();
                    }
                }
                return(false);
            }
        }
        /// <summary>
        /// Подписываемся на первый канал по списку поиска
        /// </summary>
        /// <param name="channelList">список найденных каналов</param>
        /// <returns></returns>
        private async static Task <bool> JoinChannel(this TelegramClient client, TLChannel channel)
        {
            var ChannelInfo = channel;
            var RequestJoin = new TeleSharp.TL.Channels.TLRequestJoinChannel()
            {
                Channel = new TLInputChannel
                {
                    ChannelId  = ChannelInfo.Id,
                    AccessHash = (long)ChannelInfo.AccessHash
                }
            };

            try
            {
                var JoinResponse = await client.SendRequestAsync <TLUpdates>(RequestJoin);
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }