Exemplo n.º 1
0
def thanks(request, redirect_url=settings.LOGIN_REDIRECT_URL):
    """
        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...
    twitter = Twython(
        twitter_token=settings.TWITTER_KEY,
        twitter_secret=settings.TWITTER_SECRET,
        oauth_token=request.session['request_token']['oauth_token'],
        oauth_token_secret=request.session['request_token']['oauth_token_secret'],
    )

    # Retrieve the tokens we want...
    authorized_tokens = twitter.get_authorized_tokens(request.GET['oauth_verifier'])
    user_id = int(authorized_tokens['user_id'])

    try:
        profile = TwitterProfile.objects.get(twitter_user_id=user_id)
        profile.oauth_token = authorized_tokens['oauth_token']
        profile.oauth_secret = authorized_tokens['oauth_token_secret']
        profile.screen_name = authorized_tokens['screen_name']
        profile.save()
    except TwitterProfile.DoesNotExist:
        profile = TwitterProfile()
        profile.user = request.user
        profile.oauth_token = authorized_tokens['oauth_token']
        profile.oauth_secret = authorized_tokens['oauth_token_secret']
        profile.screen_name = authorized_tokens['screen_name']
        profile.twitter_user_id = authorized_tokens['user_id']
        profile.save()

    return HttpResponseRedirect(reverse(redirect_url))