No. According to the oauth spec, your signature key is always
"consumer_secret&token_secret", even if token_secret is empty, so when you
first call request_token, your key will be "consumer_secret&"

On Thu, Jul 9, 2009 at 21:24, Blaine Garrett <bla...@blainegarrett.com>wrote:

>
> Hi,
>
> Thanks for the  quick reply Matt. Below is a recap of the setup with a
> bit more clarity as well as the keys, url, and pre-encoded data.
> Hopefully this sheds some light on the issue. I also tried the PHP lib
> someone recommended with the same results - i.e 401 error. So again, I
> am thinking it is something external to the Django setup - be it on
> either end of the requests.
>
> Thanks again!
> Blaine
>
>
> ----
>
> 1. Url I am trying to call the twitter API:
> http://articulture.blainegarrett.com/signin/
>
> 2. View Code being called:
> [python_code]
> def signin(request):
>    from acsite.people import oauthtwitter
>    import acsite.settings as settings
>
>    # Step 1: Create an anonymous twitter oauth consumer
>    oauth_consumer = oauthtwitter.OAuthApi('Vx43QEmSCP1whLq1OSPg',
> 'MY_SECRET_KEY') # Blaine's Personal Dev Site keys
>
>    # Step 2: Fetch Request Token From Twitter
>    request_token = oauth_consumer.getRequestToken() # In here I get
> the 401 error
>    raise Exception(request_token) # Never gets here
> [/python_code]
>
> 3: I installed fresh copies:
> python-twitter : http://code.google.com/p/python-twitter/
> oauth-python-twitter<http://code.google.com/p/python-twitter/%0Aoauth-python-twitter>:
> http://code.google.com/p/oauth-python-twitter/
> oauth : http://oauth.googlecode.com/svn/code/python/oauth/oauth.py
>
> In the oauth.py, I changed the line 36:
> SIGNATURE_METHOD = 'HMAC-SHA1'
>
> 4. With no other changes, I get: the urllib2 exception: HTTPError at /
> signin/ "HTTP Error 401: Unauthorized"
> 5. When I wrap the url opener code in oauthtwitter.py on approx line
> 102 in:
> try:
>    url_data = opener.open(url).read()
> except urllib2.HTTPError, e:
>    raise Exception('GET REQUEST VERSION : Unable to connect to the
> oAuth Service. Code: %s  - Url: %s : Content - %s' % (e.code, e.url,
> e.msg))
>
> I get the exception:
> GET REQUEST VERSION: Unable to connect to the oAuth Service. Code:
> 401  - Url:
>
> https://twitter.com/oauth/request_token?oauth_nonce=51064775&oauth_timestamp=1247173406&oauth_consumer_key=Vx43QEmSCP1whLq1OSPg&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_signature=4RiqJL0ZpHux77GKZku9FVeyhA8%3D
> : Content - Unauthorized
>
> 6. Trying again with a new request, adding an exception of the key,raw
> returned from build_signature_base_string in build_signature in
> oauth.py line 563, I get:
> key="MY_SECRET_KEY&", "raw: GET&https%3A%2F%2Ftwitter.com%2Foauth
> %2Frequest_token&oauth_consumer_key%3DVx43QEmSCP1whLq1OSPg
> %26oauth_nonce%3D59181510%26oauth_signature_method%3DHMAC-
> SHA1%26oauth_timestamp%3D1247173659%26oauth_version%3D1.0"
>
> Note trailing ampersand on the key returned. Could this be a query
> string artifact?
>
>
>
> On Jul 6, 10:59 am, Matt Sanford <m...@twitter.com> wrote:
> > Hi Blaine,
> >
> >      Failing the validate the signature when getting a request token
> > is pretty rare. As you said the fact this all works from other
> > libraries seems to point to a library issue. The most helpful things
> > to see in these cases are:
> >
> >   • The actual HTTP request and response that fails. By seeing the URL
> > requested I can try and recreate the signature and find the mismatch.
> >   • The "signature base string" used to create the oauth_signature
> > parameter. This usually requires adding some print statements to the
> > oauth library you're using but can be really helpful.
> >
> >      If you can send the HTTP request and response (headers and
> > bodies) that will be a good start. If you're not sure how to get them
> > from your library I recommend using a debugging proxy like Charles [1].
> >
> > Thanks;
> >   – Matt Sanford / @mzsanford
> >       Twitter Dev
> >
> > [1] -http://www.charlesproxy.com/
> >
> > On Jul 3, 2009, at 2:10 PM, Blaine Garrett wrote:
> >
> >
> >
> > > Hi,
> >
> > > I get the 401:Unauthorized Error every time I attempt to get a request
> > > token. When I attempt to go to the URL directly in the browser (not
> > > yet accessed to preserve nonce) I get a body of "Failed to validate
> > > oauth signature and token".
> >
> > > I am using the Leah's oauth client listed athttp://oauth.net/code
> > > as well as the python-twitter (0.7-devel) and oauth-python-twitter
> > > (v0.1)
> >
> > > I was able to get these same libraries to work on a different project
> > > but not on the current one I am working on.
> > > I have refreshed my tokens numerous times and also tried the working
> > > ones from the other project. I also tried the tokens from this project
> > > on the other project that was working and that WORKED.
> >
> > > As such, I am guessing it is an issue with my setup or some other lib
> > > I am working with.
> > > Both projects however have Python Versions  2.5.2 and should otherwise
> > > be the same setups.
> >
> > > Domain the project is on ishttp://articulture.blainegarrett.comif
> > > the matters for some odd reason.
> >
> > > Any thoughts?
> >
> > > Here is the code I am using to call the libs if it helps:
> > > oauth_consumer = oauthtwitter.OAuthApi(consumer_token,
> > > consumer_secret)
> > > request_token = oauth_consumer.getRequestToken() # httplib exception
> > > bubbles from within here
> > > authorization_url = oauth_consumer.getAuthorizationURL(request_token)
> >
> > > Thank you!
> > > ~Blaine
> >
> > > --
> > > Blaine Garrett
> > > gchat :  bla...@jrcorps.com
> > > aim: zombiediv
> > > y!: zombiediv
> >
> >




-- 
Internets. Serious business.

Reply via email to