private async Task Authenticate() { string message = String.Empty; try { session = await StaticData.FacebookSessionClient.LoginAsync("user_about_me,read_stream,email"); StaticData.AccessToken = session.AccessToken; StaticData.FacebookId = session.FacebookId; FacebookClient fb = new FacebookClient(StaticData.AccessToken); var temp = await fb.GetTaskAsync("me"); string jsonTemp = temp.ToString(); JObject jObject = JObject.Parse(jsonTemp); FacebookUser newFacebookUser = jObject.ToObject <FacebookUser>(); StaticData.CurrentUser.Name = newFacebookUser.name; StaticData.CurrentUser.UserName = newFacebookUser.username; StaticData.CurrentUser.Password = newFacebookUser.id; StaticData.CurrentUser.Email = newFacebookUser.email; StaticData.CurrentUser.IsFacebookUser = true; StaticMethod.ShowProgress(this, "Registering...", 0, true, true); try { string tempRegister = await UserAPI.Register(StaticData.CurrentUser); //Save that logged in facebook FacebookLoginSettingHelper newHelper = new FacebookLoginSettingHelper(); newHelper.SetLanguage(true); StaticMethod.ShowProgress(this, "Registering...", 0, true, false); } catch (Exception e) { //Username conflict Console.WriteLine(e); } await Login(StaticData.CurrentUser.UserName, StaticData.CurrentUser.Password); } catch (InvalidOperationException e) { message = "Login failed! Exception details: " + e.Message; MessageBox.Show(message); } }