// Get user public async Task <FacebookLoginResponse> GetUser(FacebookLoginRequest model) { var result = await GetAsync <dynamic>( model.FacebookToken, model.FacebookUID, "fields=name,email,birthday,location,gender,picture.width(500)" ); if (result == null) { throw new AppException("Invalid Facebook credentials"); } if (await _context.Users.AnyAsync(u => u.FacebookUID == model.FacebookUID)) { return(new FacebookLoginResponse { Existing = true }); } var facebookUser = new FacebookLoginResponse() { Email = result.email ?? null, Name = result.name, Gender = result.gender ?? null, DateOfBirth = result.birthday ?? null, Location = result.location != null ? result.location.name : null, FacebookUID = model.FacebookUID, Picture = result.picture.data.url, Existing = false }; return(facebookUser); }
private async Task <User> CreateFacebookUser(FacebookLoginResponse facebookUser) { var user = new User { FirstName = facebookUser.FirstName, LastName = facebookUser.LastName, Email = facebookUser.Email, Password = null, PasswordSalt = null, FacebookUser = true, Active = true, Blocked = false, ImageId = null, CreatedAt = DateTime.Now }; await _appDbContext.Users.AddAsync(user, CancellationToken.None); return(user); }
public async Task <FacebookLoginResponse> GetUserFromFacebookAsync(string facebookToken) { var result = await GetAsync <dynamic>(facebookToken, "me", "fields=id,first_name,last_name,email,picture.width(100).height(100)"); if (result == null) { throw new Exception("User from this token not exist"); } var user = new FacebookLoginResponse() { Id = result.id, FirstName = result.first_name, LastName = result.last_name, Email = result.email, Picture = result.picture.data.url }; return(user); }