def handle_facebook_login(self): access_token = self.request.get('access_token') user_id = self.request.get('user_id') profile_url = 'https://graph.facebook.com/me?access_token=%s' profile = json.loads(urlfetch.fetch(profile_url%access_token).content) logging.info('Facebook Login:: ') logging.info(profile) id = profile['id'] if not id == user_id: response = {"success": False, "error": "Facebook ids don't match."} else: if 'email' in profile: email = profile['email'] else: email = id user = User.get_by_key_name(email) device_token = self.request.get('token_hex') if not user: user = User.create(email, profile['first_name'], profile['last_name'], device_token) ThirdPartyUser.create('FB', user, access_token, id) profile_picture = self.get_profile_picture(id) User.update(email, profile_picture=profile_picture, device_token=device_token) else: User.update(email, device_token=device_token) util.set_session(email) response = {"success": True, "email": email, "first_name": user.first_name, "last_name": user.last_name} return response