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; } }