Example #1
0
        public async Task <LoginCompletedArgs> LoginAsync()
        {
            ShowLoading(true, "Logging into Facebook...");

            currentState = CurrentState.Login;

            var loginParams = new Dictionary <string, object>();

            loginParams.Add(PostFields.Scope, ExtendedPermissions);
            loginParams.Add(PostFields.ClientId, AppId);
            loginParams.Add(PostFields.RedirectUri, Constants.RedirectUriLogin);
            loginParams.Add(PostFields.Display, "touch");
            loginParams.Add(PostFields.ResponseType, "token");

            var loginUrl = facebookClient.GetLoginUrl(loginParams);
            LoginCompletedArgs loginResult = new LoginCompletedArgs(false);

            if (IsLogged)
            {
                ShowLoading(false);

                HttpWebRequest webRequest = WebRequest.CreateHttp(string.Format("https://graph.facebook.com/me?access_token={0}", AccessTokenData.AccessToken));
                webRequest.Method = "GET";
                using (var response = (HttpWebResponse)(await Task <WebResponse> .Factory.FromAsync(webRequest.BeginGetResponse, webRequest.EndGetResponse, null)))
                {
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        NavigateToHide();

                        loginResult = new LoginCompletedArgs(true, AccessTokenData);
                    }
                    else
                    {
                        loginResult = await NavigateToLoginAsync(loginUrl);
                    }
                }
            }
            else
            {
                loginResult = await NavigateToLoginAsync(loginUrl);
            }

            return(loginResult);
        }
 private static void LoginNavigationCallBack(NavigationEventArgs e, string fbAppId, string extendedPermissions, out LoginCompletedArgs loginResult)
 {
     if (CurrentState == FacebookSDKState.Login)
     {
         loginResult = RetrieveLoginResponse(e, fbAppId, extendedPermissions);
     }
     else
     {
         loginResult = null;
     }
 }