def _create_or_update_facebook_user(profile, access_token, expires): """Creates or updates a facebook user profile in local database. """ user_is_created = False try: fb_user = FacebookUser.objects.get(fb_id=profile['id']) except FacebookUser.DoesNotExist: user = User.objects.create( \ first_name=profile['first_name'], last_name=profile['last_name'], username='******' + profile['id'] ) user_is_created = True if user_is_created: fb_user = FacebookUser() fb_user.fb_id = profile['id'] fb_user.user = user else: fb_user.user.first_name = profile['first_name'] fb_user.last_name = profile['last_name'] fb_user.fb_username = profile['username'] fb_user.access_token = access_token fb_user.expiry_at = datetime.datetime.now() + \ datetime.timedelta(seconds=int(expires)) fb_user.save() return fb_user