Exemple #1
0
 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