def save_open_profile(user, open_profile, amqp_headers=None): from twitter.models import TwitterProfile from registration.utils import copy_avatar_from_url_to_profile, is_sso_email if not open_profile: return p_type = open_profile['profile_type'] user_profile = user.get_profile() if p_type in settings.INSTALLED_APPS: if p_type == 'twitter': profile = user_profile.twitter_profile created = False if not profile: profile = TwitterProfile(user_profile=user_profile) created = True profile.created = created profile.screen_name = open_profile['screen_name'] profile.appuser_id = unicode(open_profile['appuser_id']) profile.access_token = open_profile['access_token'] profile.save(amqp_headers=amqp_headers) # If user doesn't have a first and last name, set them from the open_profile user_changed = False if not user.first_name: user.first_name = open_profile['first_name'] user_changed = True if not user.last_name: user.last_name = open_profile['last_name'] user_changed = True if user_changed: user.save() if not user_profile.avatar_medium and 'profile_image_url' in open_profile: # grab twitter profile image url = open_profile['profile_image_url'] copy_avatar_from_url_to_profile(url, user_profile, commit=True) return profile return None
def add_twitter_acct(request): twat = TwitterProfile() if request.method == 'POST': twatForm = TwitterForm(request.POST, instance=twat) if twatForm.is_valid(): try: twits = TwitterProfile.objects.all() except Exception, e: print e # Check to make sure username does not already exist in database for twit in twits: if twit.user_name == twat.user_name: if not twit.active: twit.Activate() print "user_name already in database" try: twat.save() except Exception, e: print e return redirect('dashboard.views.dashboard')
def save_open_profile(user, open_profile, amqp_headers=None): from twitter.models import TwitterProfile from registration.utils import copy_avatar_from_url_to_profile, is_sso_email if not open_profile: return p_type = open_profile["profile_type"] user_profile = user.get_profile() if p_type in settings.INSTALLED_APPS: if p_type == "twitter": profile = user_profile.twitter_profile created = False if not profile: profile = TwitterProfile(user_profile=user_profile) created = True profile.created = created profile.screen_name = open_profile["screen_name"] profile.appuser_id = unicode(open_profile["appuser_id"]) profile.access_token = open_profile["access_token"] profile.save(amqp_headers=amqp_headers) # If user doesn't have a first and last name, set them from the open_profile user_changed = False if not user.first_name: user.first_name = open_profile["first_name"] user_changed = True if not user.last_name: user.last_name = open_profile["last_name"] user_changed = True if user_changed: user.save() if not user_profile.avatar_medium and "profile_image_url" in open_profile: # grab twitter profile image url = open_profile["profile_image_url"] copy_avatar_from_url_to_profile(url, user_profile, commit=True) return profile return None
def thanks(request, redirect_url='user_timeline'): """A user gets redirected here after hitting Twitter and authorizing your app to use their data. This is the view that stores the tokens you want for querying data. Pay attention to this. """ # Now that we've got the magic tokens back from Twitter, we need to exchange # for permanent ones and store them... oauth_token = request.session['request_token']['oauth_token'] oauth_token_secret = request.session['request_token']['oauth_token_secret'] twitter = Twython(settings.TWITTER_KEY, settings.TWITTER_SECRET, oauth_token, oauth_token_secret) # Retrieve the tokens we want... authorized_tokens = twitter.get_authorized_tokens(request.GET['oauth_verifier']) # If they already exist, grab them, login and redirect to a page displaying stuff. try: user = User.objects.get(username=authorized_tokens['screen_name']) try: user_twitter_profile = TwitterProfile.objects.get(user=user) except TwitterProfile.DoesNotExist: profile = TwitterProfile() profile.user = user profile.oauth_token = authorized_tokens['oauth_token'] profile.oauth_secret = authorized_tokens['oauth_token_secret'] profile.save() except User.DoesNotExist: # We mock a creation here; no email, password is just the token, etc. user = User.objects.create_user(authorized_tokens['screen_name'], "fjdsfn" + authorized_tokens['screen_name'] + ".com", authorized_tokens['oauth_token_secret']) profile = TwitterProfile() profile.user = user profile.oauth_token = authorized_tokens['oauth_token'] profile.oauth_secret = authorized_tokens['oauth_token_secret'] profile.save() user = authenticate( username=authorized_tokens['screen_name'], password=authorized_tokens['oauth_token_secret'] ) # login(request, user) request.session['twitterprofile'] = user return HttpResponseRedirect(redirect_url)