Hi,

Am 23.12.2011 um 19:40 schrieb lankesh87:

> Thanks..
> But now I have a new error:
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> keyerror description:-
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> Environment:
> 
> Request Method: GET
> Request URL:
> http://127.0.0.1:8001/return/?oauth_token=2ec8R2X8d3EfXgcMSR8ZgRVw4HWOH7GbASPykNo&oauth_verifier=FlfW6P2NvSGwZGN6HqM5LwhIekedz1kSIOHNEIJbyzI

With this URL you have two GET parameters.

You can reach them via request.GET['oauth_token'] and 
request.GET['oauth_verifier'].


An easy way to find out what comes with the request.GET object is to print it 
at the begin of your view:

import pprint
pprint.pprint request.GET

good luck,
TR



> Django Version: 1.2.7
> Python Version: 2.6.7
> Installed Applications:
> ['django.contrib.auth',
> 'django.contrib.contenttypes',
> 'django.contrib.sessions',
> 'django.contrib.sites',
> 'django.contrib.messages',
> 'tweety']
> Installed Middleware:
> ('django.middleware.common.CommonMiddleware',
> 'django.contrib.sessions.middleware.SessionMiddleware',
> 'django.middleware.csrf.CsrfViewMiddleware',
> 'django.contrib.auth.middleware.AuthenticationMiddleware',
> 'django.contrib.messages.middleware.MessageMiddleware')
> 
> 
> Traceback:
> File "/usr/local/lib/python2.6/site-packages/django/core/handlers/
> base.py" in get_response
>  100.                     response = callback(request,
> *callback_args, **callback_kwargs)
> File "/home/lanku/tweet/tweety/views.py" in twitter_return
>  48.     token = oauth2.Token(request.session['request_tok'],
> File "/usr/local/lib/python2.6/site-packages/django/contrib/sessions/
> backends/base.py" in __getitem__
>  46.         return self._session[key]
> 
> Exception Type: KeyError at /return/
> Exception Value: 'request_tok'
> 
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> 
> I am trying to access the session variable named
> session['request_tok']..
> 
> but it gives keyerror...
> 
> 
> This is the code in my views.py file:
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> views.py:-
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> def twitter_tweet(request):
> 
>    _consumer = oauth2.Consumer(CONSUMER_KEY, CONSUMER_SECRET)
>    client = oauth2.Client(_consumer)
> 
>    resp, content = client.request(REQUEST_TOKEN_URL, 'GET')
>    if resp['status'] != '200':
>        raise Exception('Invalid response %s', resp['status'])
> 
>    request_token1 = dict(urlparse.parse_qsl(content))
> 
>    request.session['request_tok'] = request_token1['oauth_token']
> #dict(cgi.parse_qsl(content))
>    request.session['request_token_secret'] =
> request_token1['oauth_token_secret']
>    #print "Request Token:"
>    #print "    - oauth_token        = %s" %
> request_token['oauth_token']
>    #print "    - oauth_token_secret = %s" %
> request_token['oauth_token_secret']
>    #print
> 
>    # Redirect to Twitter so the user can authorize the application
>    return HttpResponseRedirect(AUTHORIZATION_URL + '?oauth_token=' +
> request_token1['oauth_token'])
> 
> # /return Called back by Twitter after the authorization
> def twitter_return(request):
>    token = oauth2.Token(request.session['request_tok'],
>        request.session['request_token_secret'])
>    _consumer = oauth2.Consumer(CONSUMER_KEY, CONSUMER_SECRET)
> 
>    client = oauth2.Client(_consumer, token)
> 
>    resp, content = client.request(ACCESS_TOKEN_URL, 'POST')
>    access_token = dict(urlparse.parse_qsl(content))
> 
>    #print "Access Token:"
>    #print "    - oauth_token        = %s" %
> access_token['oauth_token']
>    #print "    - oauth_token_secret = %s" %
> access_token['oauth_token_secret']
>    #print
> 
>    token = oauth2.Token(access_token['oauth_token'],
> access_token['oauth_token_secret'])
> 
>    client = oauth2.Client(_consumer, token)
> 
>    resp, content = client.request(TWITTER_POST_STATUS, method='POST',
> body=urllib.urlencode( { 'status' : 'This was tweeted from a Python
> application' }))
> 
>    #print resp
>    #print content
> 
>    return HttpResponse('Tweeted!')
> 
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> 
> On Dec 23, 11:31 pm, Daniel Roseman <[email protected]> wrote:
>> On Friday, 23 December 2011 17:17:50 UTC, lankesh87 wrote:
>> 
>>> Hi,
>> 
>>>  I am trying to handle a callback url. Following is the code in my
>>> urls.py file:
>> 
>>> --------------------------------------------------------------------------------------
>> 
>>> urls.py:-
>>> --------------------------------------------------------------------------------------
>> 
>>> from django.conf.urls.defaults import *
>> 
>>> # Uncomment the next two lines to enable the admin:
>>> #from django.contrib import admin
>>> #admin.autodiscover()
>> 
>>> urlpatterns = patterns('',
>>>     # Example:
>>>     (r'^tweet/', 'tweety.views.twitter_tweet'),
>> 
>>>     #in the next line i wish to handle the callback url:-
>>>     (r'^return/(?P<qqq>\)', 'tweety.views.twitter_return'),
>> 
>>>     # Uncomment the admin/doc line below to enable admin
>>> documentation:
>>>     #(r'^admin/doc/', include('django.contrib.admindocs.urls')),
>> 
>>>     # Uncomment the next line to enable the admin:
>>>     #(r'^admin/', include(admin.site.urls)),
>>> )
>> 
>>> --------------------------------------------------------------------------------
>> 
>>> In my twitter app i have given callback url as:
>> 
>>> "http://127.0.0.1:8001/return/";
>> 
>>> but the actual url has some added parameters. Something like this:
>> 
>>> "http://127.0.0.1/return/?
>>> oauth_token=SOME_VALUE&oauth_verifier=SOME_VALUE<http://127.0.0.1/return/?oauth_token=SOME_VALUE&oauth_verifier=SOME_V...>"
>> 
>>> SOME_VALUE is alphanumeric.
>> 
>>> Now all I need is how to handle this url in Regular Expression
>> 
>>> Thanks in advance.
>> 
>> As the documentation[1] clearly explains, GET parameters (those after the
>> ?) are not matched in the URLconf. Get them in the view, with request.GET.
>> 
>> [1]:https://docs.djangoproject.com/en/1.3/topics/http/urls/#what-the-urlc...
>> ---
>> DR.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Django users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/django-users?hl=en.
> 

good luck,
TR



------------------------------------------------

http://thoreg.org




-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to