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))
Exemple #2
0
 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
Exemple #4
0
 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