예제 #1
0
        public async Task TryAuthWithoutMigration()
        {
            var settings = Container.Resolve <IClientSettings>();

            const string PhoneNumber = "9996610000";
            const string PhoneCode   = "11111";

            var requestSendCode = new RequestSendCode
            {
                PhoneNumber = PhoneNumber,
                ApiId       = settings.AppId,
                ApiHash     = settings.AppHash
            };

            var sentCode = (TSentCode)await RequestSender.SendRequestAsync(requestSendCode, CancellationToken.None).ConfigureAwait(false);

            var requestSignIn = new RequestSignIn
            {
                PhoneNumber   = PhoneNumber,
                PhoneCodeHash = sentCode.PhoneCodeHash,
                PhoneCode     = PhoneCode
            };

            var result = (TAuthorization)await RequestSender.SendRequestAsync(requestSignIn, CancellationToken.None).ConfigureAwait(false);
        }
예제 #2
0
        /// <inheritdoc />
        public async Task<ISentCode> SendCodeAsync(string phoneNumber, CancellationToken cancellationToken = default(CancellationToken))
        {
            Guard.That(phoneNumber, nameof(phoneNumber)).IsNotNullOrWhiteSpace();

            var request = new RequestSendCode
                          {
                              PhoneNumber = phoneNumber,
                              ApiId = ClientSettings.AppId,
                              ApiHash = ClientSettings.AppHash,
                          };

            return await RequestSender.SendRequestAsync(request, cancellationToken).ConfigureAwait(false);
        }
예제 #3
0
        public async Task <ISentCode> SendCodeRequestAsync(string phoneNumber)
        {
            Guard.That(phoneNumber, nameof(phoneNumber)).IsNotNullOrWhiteSpace();

            var request = new RequestSendCode
            {
                PhoneNumber = phoneNumber,
                ApiId       = ClientSettings.AppId,
                ApiHash     = ClientSettings.AppHash
            };

            return(await SenderService.SendRequestAsync(request).ConfigureAwait(false));
        }
예제 #4
0
        public async Task <ISentCode> SendCodeRequestAsync(string phoneNumber)
        {
            Guard.That(phoneNumber, nameof(phoneNumber)).IsNotNullOrWhiteSpace();

            var request = new RequestSendCode
            {
                PhoneNumber = phoneNumber,
                ApiId       = ClientSettings.AppId,
                ApiHash     = ClientSettings.AppHash
            };

            while (true)
            {
                try
                {
                    return(await SenderService.SendRequestAsync(request).ConfigureAwait(false));
                }
                catch (PhoneMigrationException ex)
                {
                    await ConnectApiService.ReconnectToDcAsync(ex.Dc).ConfigureAwait(false);
                }
            }
        }