示例#1
0
文件: views.py 项目: mnive93/ratatat
def setpassword(request, idnum):

    idnum = int(idnum)

    try:
        fb = FacebookProfiles.objects.get(fbk_id = idnum)
        facebook = Pyfb(settings.FACEBOOK_APP_ID)
        facebook.set_access_token(fb.fbk_token)
        me = facebook.get_user_by_id(id = fb.fbk_id)
        user = fb.user
    except ObjectDoesNotExist:
        return HttpResponseRedirect('/')

    if request.method == 'POST':
        form = PasswordSetForm(request.POST)

        if form.is_valid():
            user.set_password(form.cleaned_data['password'])
            user.save()
            authuser = authenticate(username=user.username, password=form.cleaned_data['password'])
            if authuser is not None:
                login(request, authuser)
            return HttpResponseRedirect('/auth/welcome/')
    else:
        form = PasswordSetForm()

    var = RequestContext(request, {
        'form':form,
        'me':me,
        'user':user
        })

    return render_to_response('registration/facebook.html', var)
示例#2
0
def facebook_login_success(request):
    code = request.GET.get('code')
    facebook = Pyfb(FACEBOOK_APP_ID)
    access_token = facebook.get_access_token(FACEBOOK_SECRET_KEY, code, redirect_uri=FACEBOOK_REDIRECT_URL)
    facebook.set_access_token(access_token)
    request.session['access_token'] = access_token
    return render_user(facebook, request)
示例#3
0
文件: test.py 项目: atul2512/pyfb
class PyfbTests(unittest.TestCase):

    pyfb_args = {}

    def setUp(self):
        self.pyfb = Pyfb(config["FACEBOOK_APP_ID"], **self.pyfb_args)
        self.pyfb.set_access_token(config["FACEBOOK_TOKEN"])
        self.me = self.pyfb.get_myself()

    def test_auth(self):
        self.assertEquals(type(self.me.name), type(unicode()))

    def test_get_friends(self):
        self.assertTrue(isinstance(self.pyfb.get_friends(self.me.id), list))

    def test_get_photos_paging(self):    	
        photos = self.pyfb.get_photos()
        more_photos = photos.next()
        more_more_photos = more_photos.next()

        if len(photos) < 25 and len(more_photos) > 0:
        	raise Exception()
        
        if len(photos) == 25 and len(more_photos) < 25 and len(more_more_photos) > 0:
        	raise Exception()

        self.assertTrue(isinstance(photos, list))
        self.assertTrue(isinstance(more_photos, list))
        self.assertTrue(isinstance(more_more_photos, list))

        self.assertEquals(len(photos), len(more_photos.previous()))
        self.assertEquals(photos.previous(), [])
def facebook_javascript_login_sucess(request):
    access_token = request.GET.get("access_token")

    facebook = Pyfb(FACEBOOK_APP_ID)
    facebook.set_access_token(access_token)

    return _render_user(facebook)
示例#5
0
class PyfbTests(unittest.TestCase):

    pyfb_args = {}

    def setUp(self):
        self.pyfb = Pyfb(keys["FACEBOOK_APP_ID"], **self.pyfb_args)
        self.pyfb.set_access_token(keys["FACEBOOK_TOKEN"])
        self.me = self.pyfb.get_myself()

    def test_auth(self):
        self.assertEquals(type(self.me.name), type(unicode()))

    def test_get_friends(self):
        self.assertTrue(isinstance(self.pyfb.get_friends(self.me.id), list))

    def test_get_photos_paging(self):
        photos = self.pyfb.get_photos()
        more_photos = photos.next()
        more_more_photos = more_photos.next()

        if len(photos) < 25 and len(more_photos) > 0:
            raise Exception()

        if len(photos
               ) == 25 and len(more_photos) < 25 and len(more_more_photos) > 0:
            raise Exception()

        self.assertTrue(isinstance(photos, list))
        self.assertTrue(isinstance(more_photos, list))
        self.assertTrue(isinstance(more_more_photos, list))

        self.assertEquals(len(photos), len(more_photos.previous()))
        self.assertEquals(photos.previous(), [])
示例#6
0
def facebook_javascript_login_sucess(request):

    access_token = request.GET.get("access_token")

    facebook = Pyfb(FACEBOOK_APP_ID)
    facebook.set_access_token(access_token)

    return _render_user(facebook)
示例#7
0
    def get(self, user_token):
        #return {User_data: User[token]}
        
        FACEBOOK_APP_ID = '134416106741047'

        facebook = Pyfb(FACEBOOK_APP_ID)

        #Opens a new browser tab instance and authenticates with the facebook API
        #It redirects to an url like http://www.facebook.com/connect/login_success.html#access_token=[access_token]&expires_in=0
        facebook.authenticate()

        #Copy the [access_token] and enter it below
        getToken = user_token#'CAACEdEose0cBACIgotCQGDecYsWW1O7wrc5saw0ZCxrM8nKzF3wWgIvQqGyb9H5u3MIBKak9jcYc3l1CNZCdYniVI3tweTC8vX2PdibMlJrdrH1LIeJnmgWQS8WpkXyRzY8dpvGgFDZARq2amdAZBEXEXJePKSuMqTIOXCCfQMzNd3QMtldxD25lkFg3IANRVfjviSo6uQZDZD'

        #Sets the authentication token
        facebook.set_access_token(getToken)

        #Gets info about myself
        me = facebook.get_myself()
        me_pic = facebook.fql_query('SELECT pic_small FROM user WHERE uid = me()')
        #friends = facebook.get_friends()

        me_name = me.name
        me_id = me.id
        me_gender = me.gender
        location = getattr(me, "location")
        me_location = location.name

        for i in me_pic:
            try:
                my_pic = i.pic_small
            except AttributeError:
                my_pic = 'None'
            try:
                me_birthday = me.birthday
            except AttributeError:
                me_birthday = 'None'

            try:
                me_status = me.relationship_status   
            except AttributeError:
                me_status = 'None'

            try:
                me_link = me.link
            except AttributeError:
                me_link = 'None'
    
    
        me_all = {'name': me_name, 'id': me_id, 'gender': me_gender, 'location': me_location, 'birthday': me_birthday, 'status': me_status, 'link': me_link, 'picture': my_pic  }    
        #db.dannysaban.insert(me_all)
        #print 'me - done!'
        #get_me = db.dannysaban.find({'id': me_id})
        return me_all   
    

        ''' update user data '''    
示例#8
0
文件: test.py 项目: evandekieft/pyfb
class pyfbTests(unittest.TestCase):

    def setUp(self):
        self.facebook = Pyfb(FACEBOOK_APP_ID)
        self.facebook.set_access_token(FACEBOOK_TOKEN)
        self.me = self.facebook.get_myself()

    def test_auth(self):
        self.assertEquals(type(self.me.name), type(unicode()))

    def test_get_friends(self):
        self.assertEquals(type(self.facebook.get_friends(self.me.id)), type(list()))
示例#9
0
class pyfbTests(unittest.TestCase):
    def setUp(self):
        self.facebook = Pyfb(FACEBOOK_APP_ID)
        self.facebook.set_access_token(FACEBOOK_TOKEN)
        self.me = self.facebook.get_myself()

    def test_auth(self):
        self.assertEquals(type(self.me.name), type(unicode()))

    def test_get_friends(self):
        self.assertEquals(type(self.facebook.get_friends(self.me.id)),
                          type(list()))
示例#10
0
def login_facebook(request):
    if 'access_token' not in request.GET:
        return Response(ReturnObject(RetCode._FAIL, _('Access token not exist in request'), None).to_json())

    try:
        access_token = request.GET.get('access_token')
        facebook = Pyfb(FACEBOOK_APP_ID)
        facebook.set_access_token(access_token)
        result = _render_user(facebook, request)
        if result != '':
            return Response(ReturnObject(RetCode._FAIL, result, None).to_json())
        else:
            current_player = get_current_user(request)
            return Response(ReturnObject(RetCode._SUCCESS, _('Login successfully'), current_player).to_json())
    except Exception, error:
        return Response(ReturnObject(RetCode._SYSTEM_ERROR, _('System error, access token is wrong'), None).to_json())
示例#11
0
def facebook_javascript_login_sucess(request):

    access_token = request.GET.get("access_token")
    # print "printing access token"
    facebook = Pyfb(FACEBOOK_APP_ID)
    facebook.set_access_token(access_token)

    user_id = "https://graph.facebook.com/me?access_token="+str(access_token)
    UID = requests.get(user_id)
    # print UID
    if UID.ok:
        jData = json.loads(UID.content)
        UID = jData['id']

    print str(UID) #print FACEBOOK USER ID
    url = "http://graph.facebook.com/v2.7/"+str(UID)+"/picture?redirect=false"
    print url
    myResponse = requests.get(url)
    print myResponse
    if myResponse.ok:
        jData = json.loads(myResponse.content)
        data = jData['data']
        pic_url = data['url'] #Profile Picture
        print pic_url
    else:
        myResponse.raise_for_status()
        print "error"
    photos = facebook.get_photos()
    print "These are my photos:\n"

    facebook_user = True
    users = User.objects.all()
    me = facebook.get_myself()
    fullname = me.name.split()
    first_name = str(fullname[0])
    last_name = str(fullname[1])
    fullname = first_name + last_name
    if User.objects.filter(username=fullname).exists():
        u = authenticate(username=fullname, password=fullname)
        user_profile = UserProfile.objects.get(user=)
        login(request, u)
        return HttpResponseRedirect('/')
    else:
        return _render_user(facebook, facebook_user, request)
示例#12
0
文件: views.py 项目: mnive93/ratatat
def feed(request):
	usergenres = request.user.genretouser.all()
	user = request.user
	if request.method == 'POST':
		form = PostingForm(request.POST)

		if form.is_valid():

			if request.POST.get('facebookshare'):
				try:
					fb = FacebookProfiles.objects.get(user=user)
					fbk = Pyfb(settings.FACEBOOK_APP_ID, settings.FACEBOOK_SECRET_KEY)
					fbk.set_access_token(fb.fbk_token)

					fbk.publish(message=form.cleaned_data['content'], id=fb.fbk_id)
				except ObjectDoesNotExist:
					pass

			if request.POST.get('twittershare'):
				try:
					tw = TwitterProfiles.objects.get(user=user)
					twttr = tweepy.OAuthHandler(settings.TWITTER_CONSUMER_KEY, settings.TWITTER_CONSUMER_SECRET)
					twttr.set_access_token(tw.oauth_token, tw.oauth_secret)
					api = tweepy.API(twttr)
					me = api.me()
					api.update_status(form.cleaned_data['content'] + ' via @likewyss')
				except ObjectDoesNotExist:
					pass

			return HttpResponseRedirect('/feed/')
	else:
		form = PostingForm()

	var = RequestContext(request, {
		'form':form,
        'user':request.user,
        'genres':usergenres
        })
	return render_to_response('pages/feed.html', var)
示例#13
0
def login_facebook(request):
    if 'access_token' not in request.GET:
        return Response(
            ReturnObject(RetCode._FAIL, _('Access token not exist in request'),
                         None).to_json())

    try:
        access_token = request.GET.get('access_token')
        facebook = Pyfb(FACEBOOK_APP_ID)
        facebook.set_access_token(access_token)
        result = _render_user(facebook, request)
        if result != '':
            return Response(
                ReturnObject(RetCode._FAIL, result, None).to_json())
        else:
            current_player = get_current_user(request)
            return Response(
                ReturnObject(RetCode._SUCCESS, _('Login successfully'),
                             current_player).to_json())
    except Exception, error:
        return Response(
            ReturnObject(RetCode._SYSTEM_ERROR,
                         _('System error, access token is wrong'),
                         None).to_json())
示例#14
0
def FacebookMobileLogin (request):
	if request.method == 'POST':

		primary_user = 1

		facebook_id = request.POST.get('fb_user_id', None)
		facebook_email = request.POST.get('fb_user_email', None)
		token = request.POST.get('oauth_token', None)
		expiration = request.POST.get('expiration', None)
		creation = request.POST.get('created', None)

		if not request.user.is_authenticated():
			if token and expiration and creation:
				new_token = OAuthToken(token=token, issued_at=datetime.fromtimestamp(float(creation)),
				                       expires_at=datetime.fromtimestamp(float(expiration)))
				new_token.save()

				facebook = Pyfb(FACEBOOK_APP_ID)
				facebook.set_access_token(token)
				me = facebook.get_myself()

				if (type(me.name) == type(unicode())):

					try:
						find_fb_user = FacebookAppUser.objects.get(fb_uid=me.id)
						find_fb_user.oauth_token = new_token
						find_fb_user.save()
						user = User.objects.get(pk=find_fb_user.appuser.user.pk)
						user.backend = 'django.contrib.auth.backends.ModelBackend'
						login(request, user)
						#response = json.dumps({'status': 'success', 'user':user})
						serialized_response = serializers.serialize('json', [find_fb_user.appuser, ], relations={
							'user': {'fields': ( 'username', 'first_name', 'last_name', 'email', )},
							'facebook_user': {'fields': ( 'fb_uid', 'fb_email', )}, })
						return HttpResponse(serialized_response, mimetype="application/json")

					except FacebookAppUser.DoesNotExist:

						birthday = None
						if hasattr(me, 'birthday'):
							birthday = datetime.strptime(me.birthday, '%m/%d/%Y')

						new_fb_user = FacebookAppUser(user_id=primary_user, fb_uid=me.id, fb_email=me.email,
						                              oauth_token=new_token)
						new_fb_user.save()

						new_user = User.objects.create_user(username=me.username.lower(), email=me.email,
						                                    password=token)
						new_user.first_name = me.first_name
						new_user.last_name = me.last_name
						new_user.save()

						new_appuser = AppUser(user=new_user, facebook_user=new_fb_user, gender=me.gender,
						                      birthdate=birthday)
						new_appuser.save()

						new_fb_user.appuser = new_appuser
						new_fb_user.save()

						new_user.backend = 'django.contrib.auth.backends.ModelBackend'
						login(request, new_user)

						#response = json.dumps({'status': 'success', 'user':new_user})
						#serialized_response = serializers.serialize('json', [ new_user, ])
						#return HttpResponse(me.__dict__)
						serialized_response = serializers.serialize('json', [new_appuser, ], relations={
							'user': {'fields': ('username', 'first_name', 'last_name', 'email', )},
							'facebook_user': {'fields': ( 'fb_uid', 'fb_email', )}, })
						return HttpResponse(serialized_response, mimetype="application/json")

		else:
			if token and expiration and creation:
				new_token = OAuthToken(token=token, issued_at=datetime.fromtimestamp(float(creation)),
				                       expires_at=datetime.fromtimestamp(float(expiration)))
				new_token.save()

				facebook = Pyfb(FACEBOOK_APP_ID)
				facebook.set_access_token(token)
				me = facebook.get_myself()

				if (type(me.name) == type(unicode())):
					try:
						#also need to update to the current token
						fb_user = FacebookAppUser.objects.get(fb_uid=me.id)
						user = fb_user.appuser.user
						#response = json.dumps({'status': 'success', 'user':user, 'fb_user':fb_user})
						#serialized_response = serializers.serialize('json', [ user, fb_user, ])
						#return HttpResponse(me.__dict__)
						serialized_response = serializers.serialize('json', [fb_user.appuser, ], relations={
							'user': {'fields': ( 'username', 'first_name', 'last_name', 'email', )},
							'facebook_user': {'fields': ( 'fb_uid', 'fb_email', )}, })
						return HttpResponse(serialized_response, mimetype="application/json")
					#return HttpResponse(response, mimetype="application/json")
					#if (find_fb_user.appuser.user == request.user):
					#find_fb_user.oauth_token = new_token
					#find_fb_user.save()
					#response = json.dumps({'status': 'success',})
					#return HttpResponse(response, mimetype="application/json")
					#else:
					#response = json.dumps({'status': 'unauthorized',})
					#return HttpResponse(response, mimetype="application/json", status=401)

					except FacebookAppUser.DoesNotExist:
						birthday = None
						if hasattr(me, 'birthday'):
							birthday = datetime.strptime(me.birthday, '%m/%d/%Y')
						new_fb_user = FacebookAppUser(user_id=primary_user, fb_uid=me.id, fb_email=me.email, oauth_token=new_token)
						new_fb_user.save()

						current_user = request.user
						current_user.first_name = me.first_name
						current_user.last_name = me.last_name
						current_user.save()

						app_user = current_user.appuser
						app_user.gender = me.gender
						app_user.birthdate = birthday
						app_user.facebook_user = new_fb_user
						app_user.save()

						return HttpResponse('profile updated with facebook')


		return HttpResponse('failed', status=400)
示例#15
0
文件: util.py 项目: mnive93/ratatat
from django.contrib.auth.models import User
from authentication.models import *
from core.models import *
from django.conf import settings
from pyfb import Pyfb

oauth = Pyfb(settings.FACEBOOK_APP_ID, settings.FACEBOOK_SECRET_KEY)
u = User.objects.get(username='******')
f = FacebookProfiles.objects.get(user=u)
oauth.set_access_token(f.fbk_token)

api = tweepy.API(oauth)
me = api.me()
示例#16
0
#Your APP ID. It Needs to register your application on facebook
#http://developers.facebook.com/
FACEBOOK_APP_ID = '178358228892649'

facebook = Pyfb(FACEBOOK_APP_ID)

#Opens a new browser tab instance and authenticates with the facebook API
#It redirects to an url like http://www.facebook.com/connect/login_success.html#access_token=[access_token]&expires_in=0
facebook.authenticate()

#Copy the [access_token] and enter it below
token = raw_input("Enter the access_token\n")

#Sets the authentication token
facebook.set_access_token(token)

#Gets info about myself
me = facebook.get_myself()

print "-" * 40
print "Name: %s" % me.name
print "From: %s" % me.hometown.name
print

print "Speaks:"
for language in me.languages:
    print "- %s" % language.name

print
print "Worked at:"
示例#17
0
#Your APP ID. It Needs to register your application on facebook
#http://developers.facebook.com/
FACEBOOK_APP_ID = '178358228892649'

facebook = Pyfb(FACEBOOK_APP_ID)

#Opens a new browser tab instance and authenticates with the facebook API
#It redirects to an url like http://www.facebook.com/connect/login_success.html#access_token=[access_token]&expires_in=0
facebook.authenticate()

#Copy the [access_token] and enter it below
token = raw_input("Enter the access_token\n")

#Sets the authentication token
facebook.set_access_token(token)

#Gets info about myself
me = facebook.get_myself()

print "-" * 40
print "Name: %s" % me.name
print "From: %s" % me.hometown.name
print

print "Speaks:"
for language in me.languages:
    print "- %s" % language.name

print
print "Worked at:"
示例#18
0
    def get_third_party_auth(self, auth_type, facebook_access_token=None):
        """Wrangle and return authentication data from third parties.

        Args:
            auth_type: str, either 'google', or 'facebook'
            facebook_access_token: str, returned by the facebook javasript sdk
                when user logs in.
        Returns tuple of:
            dictionary of user information, which will always contain
                the key 'auth_id', or None if no third-party info is found.
            error as a string
        """
        if auth_type == 'google':
            gae_user = app_engine_users.get_current_user()
            if not gae_user:
                logging.info("No google login found.")
                return (None, 'credentials_missing')
            # Get user first and last names from nickname
            first_name = None
            last_name = None
            if gae_user.nickname():
                nickname = gae_user.nickname()
                if ' ' in nickname:
                    first_name = nickname.split(' ')[0]
                    last_name = nickname.split(' ')[1]
                else:
                    if '@' in nickname:
                        first_name = nickname.split('@')[0]
                    else:
                        first_name = nickname
            # Combine fields in user keyword arguments
            user_kwargs = {
                'auth_id': User.get_auth_id(auth_type, gae_user.user_id()),
                'email': gae_user.email(),
                'google_id': gae_user.user_id(),
                'first_name': first_name,
                'last_name': last_name,
            }
        elif auth_type == 'facebook':
            fb_api = Facebook(config.facebook_app_id)
            fb_api.set_access_token(facebook_access_token)
            me = fb_api.get_myself()

            if me:
                if not hasattr(me, 'email'):
                    # Facebook users might not have an email address, or they
                    # might refuse to share it with us. We can't move forward
                    # without a way to contact them, so treat it as if their
                    # credentials were missing.
                    logging.warning("Found fb user, but they had no email.")
                    return (None, 'email_not_found')

                user_kwargs = {
                    'auth_id': User.get_auth_id(auth_type, me.id),
                    'email': me.email,
                    'facebook_id': me.id,
                    'first_name': me.first_name,
                    'last_name': me.last_name,
                }
            else:
                # The connection between PERTS and facebook is expired or has
                # been used with the GraphAPI already.
                logging.error("Facebook connection expired.")
                return (None, 'credentials_missing')

        return (user_kwargs, None)
示例#19
0
#Your APP ID. You Need to register the application on facebook
#http://developers.facebook.com/
FACEBOOK_APP_ID = 'YOUR_APP_ID'

pyfb = Pyfb(FACEBOOK_APP_ID)

#Opens a new browser tab instance and authenticates with the facebook API
#It redirects to an url like http://www.facebook.com/connect/login_success.html#access_token=[access_token]&expires_in=0
pyfb.authenticate()

#Copy the [access_token] and enter it below
token = raw_input("Enter the access_token\n")

#Sets the authentication token
pyfb.set_access_token(token)

photos = pyfb.get_photos()

print "These are my photos:\n"
for photo in photos:
    print photo.picture

#Just call the method next to get the next page of photos!
more_photos = photos.next()

print "\nMore photos:\n"
for photo in more_photos:
    print photo.picture

more_more_photos = more_photos.next()