Esempio n. 1
0
def init_facebook(request):
    """Sets up the request specific Facebook and User instance"""
    facebook = Facebook()
    user = None
    friendslist = {}
    randomfriends = {}

    if u'signed_request' in request.POST:
        print 'POST request from FB with signed_request'
	facebook.load_signed_request(request.POST['signed_request'])
	#request.META['REQUEST_METHOD'] = u'GET'
    elif 'u' in request.COOKIES:
	facebook.load_signed_request(request.COOKIES['u'])

    # try to load or create a user object
    # load from db and update access_token
    if facebook.user_id:
        try:
	    user = User.objects.get(user_id=facebook.user_id)
        except User.DoesNotExist:
	    pass
        if user:
	    print 'User found in db'
	    if facebook.access_token and \
		    facebook.access_token != user.access_token:
		user.access_token = facebook.access_token
	    user.save()
	    if not facebook.access_token:
		facebook.access_token = user.access_token
#	    if user.dirty:
#	        user.refresh_data()
	    #get friendslist 
	    try:
# me = {}
		me = facebook.api(u'/me', {u'fields': _USER_FIELDS})
		friends = [auser for auser in me[u'friends'][u'data']]
		i=0
		for friend in friends:
                    uid=friend[u'id']
                    fn=friend[u'name']
		    frn = User(user_id=uid, first_name=fn)
		    friendslist[i]=frn
		    i=i+1
		randomfriends = select_random(friendslist, 10)
	    except KeyError, ex:
		pass # ignore if can't get the minimum fields

            print 'printing user = '******'/me', {u'fields': _USER_FIELDS})
	    try:
	        # this should be a list of friends using this app
		friends = [auser for auser in me[u'friends'][u'data']]
		friendsstr =','.join([user[u'id'] for user in me[u'friends'][u'data']])
		i=0
		for friend in friends:
                    uid=friend[u'id']
                    fn=friend[u'name']
		    frn = User(user_id=uid, first_name=fn)
		    friendslist[i]=frn
		    i=i+1
		randomfriends = select_random(friendslist, 10)
                thename = me[u'name']
		namelist = thename.split(' ')
		fname=''
		lname =''
		if (len(namelist)) > 1: 
		    fname = namelist[0]
		    lname = namelist[1]
		else:
		    fname = thename

		print 'first name ',fname
		print 'last name ',lname
		user = User(
		    user_id=facebook.user_id, friends=friendsstr, 
		    access_token=facebook.access_token, name=me[u'name'],
		    first_name = fname, last_name = lname,
		    email=me.get(u'email'), picture=me[u'picture'])
		user.save()

	    except KeyError, ex:
		pass # ignore if can't get the minimum fields
Esempio n. 2
0
def init_facebook(request):
    """Sets up the request specific Facebook and User instance"""
    facebook = Facebook()
    user = None
    friendslist = {}
    randomfriends = {}

    if u'signed_request' in request.POST:
        print 'POST request from FB with signed_request'
        facebook.load_signed_request(request.POST['signed_request'])
#request.META['REQUEST_METHOD'] = u'GET'
    elif 'u' in request.COOKIES:
        facebook.load_signed_request(request.COOKIES['u'])

    # try to load or create a user object
    # load from db and update access_token
    if facebook.user_id:
        try:
            user = User.objects.get(user_id=facebook.user_id)
        except User.DoesNotExist:
            pass
        if user:
            print 'User found in db'
            if facebook.access_token and \
             facebook.access_token != user.access_token:
                user.access_token = facebook.access_token
            user.save()
            if not facebook.access_token:
                facebook.access_token = user.access_token


#	    if user.dirty:
#	        user.refresh_data()
#get friendslist
            try:
                # me = {}
                me = facebook.api(u'/me', {u'fields': _USER_FIELDS})
                friends = [auser for auser in me[u'friends'][u'data']]
                i = 0
                for friend in friends:
                    uid = friend[u'id']
                    fn = friend[u'name']
                    frn = User(user_id=uid, first_name=fn)
                    friendslist[i] = frn
                    i = i + 1
                randomfriends = select_random(friendslist, 10)
            except KeyError, ex:
                pass  # ignore if can't get the minimum fields

            print 'printing user = '******'/me', {u'fields': _USER_FIELDS})
            try:
                # this should be a list of friends using this app
                friends = [auser for auser in me[u'friends'][u'data']]
                friendsstr = ','.join(
                    [user[u'id'] for user in me[u'friends'][u'data']])
                i = 0
                for friend in friends:
                    uid = friend[u'id']
                    fn = friend[u'name']
                    frn = User(user_id=uid, first_name=fn)
                    friendslist[i] = frn
                    i = i + 1
                randomfriends = select_random(friendslist, 10)
                thename = me[u'name']
                namelist = thename.split(' ')
                fname = ''
                lname = ''
                if (len(namelist)) > 1:
                    fname = namelist[0]
                    lname = namelist[1]
                else:
                    fname = thename

                print 'first name ', fname
                print 'last name ', lname
                user = User(user_id=facebook.user_id,
                            friends=friendsstr,
                            access_token=facebook.access_token,
                            name=me[u'name'],
                            first_name=fname,
                            last_name=lname,
                            email=me.get(u'email'),
                            picture=me[u'picture'])
                user.save()

            except KeyError, ex:
                pass  # ignore if can't get the minimum fields