def handle_results(self): try: result = self.rpc.get_result() from geouser.models_social import FacebookUser if int(result.status_code) != 200: return {} friends_result = json.loads(result.content) if 'data' in friends_result: friends_result = friends_result['data'] else: return {} friends_key = ['fu%s' % f['id'] for f in friends_result] users_to_follow = FacebookUser.get_by_key_name(friends_key) users_to_follow = filter(None, users_to_follow) for user_to_follow in users_to_follow: if user_to_follow.user.username is not None and \ not self.user.is_following(user_to_follow.user): self.friends[user_to_follow.user.id]= { 'username':user_to_follow.user.username, 'uid':user_to_follow.uid, 'id': user_to_follow.user.id, } except Exception, e: import logging logging.exception('Handling Exception getting facebook friends: %s - %s' % (self.user.id, e.message))
def handle_results(self): try: result = self.rpc.get_result() from geouser.models_social import FacebookUser if int(result.status_code) != 200: return {} friends_result = json.loads(result.content) if 'data' in friends_result: friends_result = friends_result['data'] else: return {} friends_key = ['fu%s' % f['id'] for f in friends_result] users_to_follow = FacebookUser.get_by_key_name(friends_key) users_to_follow = filter(None, users_to_follow) for user_to_follow in users_to_follow: if user_to_follow.user.username is not None and \ not self.user.is_following(user_to_follow.user): self.friends[user_to_follow.user.id] = { 'username': user_to_follow.user.username, 'uid': user_to_follow.uid, 'id': user_to_follow.user.id, } except Exception, e: import logging logging.exception( 'Handling Exception getting facebook friends: %s - %s' % (self.user.id, e.message))
def authorize(self, user): """guarda el token de autorizacion""" if user is not None:#el usuario ya esta conectado, pero pide permisos token = OAUTH_Access.get_token(self.consumer.access_token) if token is None: OAUTH_Access.remove_token(user, 'facebook') token = OAUTH_Access.add_token( token_key=self.consumer.access_token, token_secret='', provider='facebook', user=user, ) else: token.user = user token.put() self.consumer = GraphAPI(access_token=token.token_key) facebookInfo = self.get_user_info() if user.facebook_user is None: fbuser = FacebookUser.register(user=user, uid=facebookInfo['id'], email=facebookInfo.get('email', None), realname=facebookInfo["name"], profile_url=facebookInfo["link"], access_token=self.consumer.access_token) else: user.facebook_user.update( uid=facebookInfo['id'], realname = facebookInfo['name'], profile_url=facebookInfo["link"], ) self.user = user self.token = token import memcache memclient = memcache.mem.Client() token_cache = {'token': token, 'user': self.user } memclient.set('%sfbclienttoken_%s' % (memcache.version, self.consumer.access_token ), token_cache) memclient.set('%sfbclientuser_%s' % (memcache.version, user.id ), memcache.serialize_instances(token) ) return True return False
def authorize(self, user): """guarda el token de autorizacion""" if user is not None: #el usuario ya esta conectado, pero pide permisos token = OAUTH_Access.get_token(self.consumer.access_token) if token is None: OAUTH_Access.remove_token(user, 'facebook') token = OAUTH_Access.add_token( token_key=self.consumer.access_token, token_secret='', provider='facebook', user=user, ) else: token.user = user token.put() self.consumer = GraphAPI(access_token=token.token_key) facebookInfo = self.get_user_info() if user.facebook_user is None: fbuser = FacebookUser.register( user=user, uid=facebookInfo['id'], email=facebookInfo.get('email', None), realname=facebookInfo["name"], profile_url=facebookInfo["link"], access_token=self.consumer.access_token) else: user.facebook_user.update( uid=facebookInfo['id'], realname=facebookInfo['name'], profile_url=facebookInfo["link"], ) self.user = user self.token = token import memcache memclient = memcache.mem.Client() token_cache = {'token': token, 'user': self.user} memclient.set( '%sfbclienttoken_%s' % (memcache.version, self.consumer.access_token), token_cache) memclient.set('%sfbclientuser_%s' % (memcache.version, user.id), memcache.serialize_instances(token)) return True return False