コード例 #1
0
ファイル: FacebookLogin.cs プロジェクト: zhouzu/auto-yoliker
        public LoginStatus Login()
        {
            Session session = new Session();

            session.CreateSession();
            FacebookSession = session;
            LoginStatus loginStatus;
            string      Postdata      = "";
            string      ResponseLogin = "";

            try
            {
                if (facebookStatics.IssCookie)
                {
                    session.http.AddHeader("cookie", facebookStatics.cookie);
                    ResponseLogin = session.http.Get(LoginFBUrl).ToString();
                    {
                        if (ResponseLogin.Contains("name=\"xc_message\""))
                        {
                            loginStatus = LoginStatus.SUCCESS;
                            return(loginStatus);
                        }
                        else
                        {
                            loginStatus = LoginStatus.ERROR;
                            return(loginStatus);
                        }
                    }
                }
                string ResponseLoginPage = session.http.Get(LoginFBUrl).ToString();
                session.InitParamsCodeLogin(ResponseLoginPage);
                ResponseLoginPage = "";
                Postdata          = $"lsd={session.lsd}&jazoest={session.jazoest}&m_ts={session.m_ts}&li={session.li}&try_number=0&unrecognized_tries=0&email={facebookStatics.uid}&pass={facebookStatics.pass}&login=%C4%90%C4%83ng+nh%E1%BA%ADp";
                session.AddParamsLogin(Postdata);
                //Postdata = System.Net.WebUtility.UrlEncode(Postdata);
                ResponseLogin = session.http.Post(_svurl, Postdata, "application/x-www-form-urlencoded").ToString();
                string nh = "";
                if (facebookStatics.tfa == null)
                {
                    loginStatus = LoginStatus.SUCCESS;
                }
                if (ResponseLogin.Contains("checkpointSubmitButton"))
                {
                    nh = AppExtension.RegexByNameHtml(ResponseLogin, "nh", 1);
                    session.fb_dtsg = AppExtension.RegexByNameHtml(ResponseLogin, "fb_dtsg", 1);
                    string _2facode = AppExtension.tfacode(facebookStatics.tfa);
                    session.jazoest = AppExtension.RegexByNameHtml(ResponseLogin, "jazoest", 1);
                    Postdata        = $"fb_dtsg={session.fb_dtsg}&jazoest={session.jazoest}&checkpoint_data=&approvals_code={_2facode}&codes_submitted=0&submit%5BSubmit+Code%5D=G%E1%BB%ADi+m%C3%A3&nh={nh}";
                    ResponseLogin   = session.http.PostUrlEncoded(_mbasic_checkpoint_uri, Postdata).ToString();
                    Postdata        = $"fb_dtsg={session.fb_dtsg}&jazoest={session.jazoest}&checkpoint_data=&name_action_selected=save_device&submit%5BContinue%5D=Ti%E1%BA%BFp+t%E1%BB%A5c&nh={nh}";
                    ResponseLogin   = session.http.PostUrlEncoded(_mbasic_checkpoint_uri, Postdata).ToString();
                    if (ResponseLogin.Contains("checkpointSubmitButton"))
                    {
                        Postdata      = $"fb_dtsg={session.fb_dtsg}&jazoest={session.jazoest}&checkpoint_data=&submit%5BContinue%5D=Ti%E1%BA%BFp+t%E1%BB%A5c&nh=" + nh;
                        ResponseLogin = session.http.PostUrlEncoded(_mbasic_checkpoint_uri, Postdata).ToString();
                        Postdata      = $"fb_dtsg={session.fb_dtsg}&jazoest={session.jazoest}&checkpoint_data=&submit%5BThis+was+me%5D=%C4%90%C3%A2y+l%C3%A0+t%C3%B4i&nh=" + nh;
                        ResponseLogin = session.http.PostUrlEncoded(_mbasic_checkpoint_uri, Postdata).ToString();
                        Postdata      = $"fb_dtsg={session.fb_dtsg}&jazoest={session.jazoest}&checkpoint_data=&name_action_selected=save_device&submit%5BContinue%5D=Ti%E1%BA%BFp+t%E1%BB%A5c&nh=" + nh;
                        ResponseLogin = session.http.PostUrlEncoded(_mbasic_checkpoint_uri, Postdata).ToString();
                    }
                    else
                    {
                        loginStatus = LoginStatus.SUCCESS;
                    }
                    if (ResponseLogin.Contains("verification_method"))
                    {
                        loginStatus = LoginStatus.CHECKPOINT;
                    }
                    else
                    {
                        loginStatus = LoginStatus.SUCCESS;
                    }
                }
                else
                {
                    loginStatus = LoginStatus.WRONG_PASS;
                }
            }
            catch
            {
                loginStatus = LoginStatus.ERROR;
                return(loginStatus);
            }
            finally
            {
                AccessTokenStatus accessTokenStatus = LoginAutGetToken();
                if (accessTokenStatus == AccessTokenStatus.SUCCESS)
                {
                    facebookStatics.cookie = session.http.Cookies.ToString();
                    loginStatus            = LoginStatus.SUCCESS;
                }
                else
                {
                    loginStatus = LoginStatus.ERROR;
                }
                FacebookSession = session;
                session.Dispose();
                Postdata      = "";
                ResponseLogin = "";
            }
            return(loginStatus);
        }