コード例 #1
0
def twitter_authenticated(request):
    # Step 1. Use the request token in the session to build a new client.
    token = oauth.Token(request.session['request_token']['oauth_token'],
                        request.session['request_token']['oauth_token_secret'])
    client = oauth.Client(consumer, token)

    # Step 2. Request the authorized access token from Twitter.
    resp, content = client.request(access_token_url, "GET")
    if resp['status'] != '200':
        print content
        raise Exception("Invalid response from Twitter.")
    """
    This is what you'll get back from Twitter. Note that it includes the
    user's user_id and screen_name.
    {
        'oauth_token_secret': 'IcJXPiJh8be3BjDWW50uCY31chyhsMHEhqJVsphC3M',
        'user_id': '120889797',
        'oauth_token': '120889797-H5zNnM3qE0iFoTTpNEHIz3noL9FKzXiOxwtnyVOD',
        'screen_name': 'heyismysiteup'
    }
    """
    access_token = dict(cgi.parse_qsl(content))

    # Step 3. Lookup the user or create them if they don't exist.
    try:
        user = User.objects.get(username=access_token['screen_name'])
    except User.DoesNotExist:
        # When creating the user I just use their [email protected]
        # for their email and the oauth_token_secret for their password.
        # These two things will likely never be used. Alternatively, you
        # can prompt them for their email here. Either way, the password
        # should never be used.
        user = User.objects.create_user(
            access_token['screen_name'],
            '*****@*****.**' % access_token['screen_name'],
            access_token['oauth_token_secret'])

    # if the user does not have a profile, lets create it
    if not user.profile_set.count():
        # Save our permanent token and secret for later.
        profile = Profile()

        # update profile info
        profile.user = user
        profile.oauth_token = access_token['oauth_token']
        profile.oauth_secret = access_token['oauth_token_secret']
        profile.save()

    # Authenticate the user and log them in using Django's pre-built
    # functions for these things.
    user = authenticate(username=access_token['screen_name'],
                        password=access_token['oauth_token_secret'])

    if user is not None:
        login(request, user)

    return HttpResponseRedirect(reverse('grade:talks'))
コード例 #2
0
ファイル: tests.py プロジェクト: Yash240824/gradefisl
    def setUp(self):
        data_json = open("public/json/data.json", "r").read()
        self.json = simplejson.loads(data_json)

        self.factory = RequestFactory()

        # we need an user
        user = User.objects.create_user(
            'gradefisl', '*****@*****.**',
            'QZAx8IwvwpLOHGNDOTrIhSO3E5KyeOtb9UIrqJ9nyM')

        profile = Profile()
        profile.user = user
        profile.oauth_token = '324585531-Q1syPHxVC8X0ausLadVHDnDhzXRxx0z26lRjuHBm'
        profile.oauth_secret = 'QZAx8IwvwpLOHGNDOTrIhSO3E5KyeOtb9UIrqJ9nyM'
        profile.save()
コード例 #3
0
ファイル: tests.py プロジェクト: Mozenaco/gradefisl
    def setUp(self):
        data_json = open("public/json/data.json", "r").read()
        self.json = simplejson.loads(data_json)

        self.factory = RequestFactory()

        # we need an user
        user = User.objects.create_user('gradefisl',
                                '*****@*****.**',
                                'QZAx8IwvwpLOHGNDOTrIhSO3E5KyeOtb9UIrqJ9nyM')

        profile = Profile()
        profile.user = user
        profile.oauth_token = '324585531-Q1syPHxVC8X0ausLadVHDnDhzXRxx0z26lRjuHBm'
        profile.oauth_secret = 'QZAx8IwvwpLOHGNDOTrIhSO3E5KyeOtb9UIrqJ9nyM'
        profile.save()