public async Task <ActionModel> DoLogin(HttpClientHandler httpClient = null)
        {
            ActionModel dataAction = new ActionModel
            {
                Type     = "Login",
                Username = userSession.UserName,
                Status   = 0
            };

            try
            {
                IInstaApiBuilder instaApiBuild = InstaApiBuilder.CreateBuilder()
                                                 .SetUser(userSession)
                                                 .UseLogger(new DebugLogger(LogLevel.Exceptions));

                if (httpClient != null)
                {
                    instaApiBuild = instaApiBuild.UseHttpClientHandler(httpClient);
                }

                HelpersApi.InstaApi = instaApiBuild.Build();

                var loginResult = await HelpersApi.InstaApi.LoginAsync();

                if (loginResult.Succeeded)
                {
                    dataAction.Status   = 1;
                    dataAction.Response = $"[+] {dataAction.Type} | Status: Success | Username: {userSession.UserName}";
                }
                else
                {
                    switch (loginResult.Value)
                    {
                    case InstaLoginResult.InvalidUser:
                        dataAction.Response = $"[+] {dataAction.Type} | Status: Failed | Error: Username is invalid.";
                        break;

                    case InstaLoginResult.BadPassword:
                        dataAction.Response = $"[+] {dataAction.Type} | Status: Failed | Error: Password is wrong.";
                        break;

                    case InstaLoginResult.Exception:
                        dataAction.Response = $"[+] {dataAction.Type} | Status: Failed | Error: {loginResult.Info.Message}";
                        break;

                    case InstaLoginResult.LimitError:
                        dataAction.Response = $"[+] {dataAction.Type} | Status: Failed | Error: Limit error (you should wait 10 minutes).";
                        break;

                    case InstaLoginResult.ChallengeRequired:
                        dataAction.Status   = 2;
                        dataAction.Response = $"[+] {dataAction.Type} | Status: Failed | Error: Challenge Required.";
                        HandleChallenge();
                        break;

                    case InstaLoginResult.TwoFactorRequired:
                        dataAction.Response = $"[+] {dataAction.Type} | Status: Failed | Error:  Factor Required. Disabled it first!";
                        break;

                    case InstaLoginResult.InactiveUser:
                        dataAction.Response = $"[+] {dataAction.Type} | Status: Failed | Error:  {loginResult.Info.Message}";
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                dataAction.Response = $"[+] {dataAction.Type} | Status: Failed | Error:  {ex.Message}";
            }
            return(dataAction);
        }
Beispiel #2
0
 public ApiWrapperBuilder(IInstaApiBuilder instaApiBuilder, IMapper mapper)
 {
     this.instaApiBuilder = instaApiBuilder;
     this.mapper          = mapper;
 }