Invalid/Expired token says it all..

Tom


On 9/9/10 11:00 PM, EranD wrote:
> Thanks for the help.
> 
> Unfortunately I've already tried all of those :(
> 
> res = access_token.post("/1/statuses/update.xml", {"status" => "Hello
> tweet"})
> 
> response is the same:
> "HTTP/1.1 401 Unauthorized\r\n"
> -> "Date: Thu, 09 Sep 2010 20:58:01 GMT\r\n"
> -> "Server: hi\r\n"
> -> "Status: 401 Unauthorized\r\n"
> -> "WWW-Authenticate: Basic realm=\"Twitter API\"\r\n"
> -> "Content-Type: application/xml; charset=utf-8\r\n"
> -> "Content-Length: 139\r\n"
> -> "Cache-Control: no-cache, max-age=1800\r\n"
> -> "Set-Cookie: k=71.183.40.72.1284065880883182; path=/; expires=Thu,
> 16-Sep-10 20:58:00 GMT; domain=.twitter.com\r\n"
> -> "Set-Cookie: guest_id=128406588098859508; path=/; expires=Sat, 09
> Oct 2010 20:58:00 GMT\r\n"
> -> "Set-Cookie:
> _twitter_sess=BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
> %250ASGFzaHsABjoKQHVzZWR7AA%253D
> %253D--1164b91ac812d853b877e93ddb612b7471bebc74; domain=.twitter.com;
> path=/\r\n"
> -> "Expires: Thu, 09 Sep 2010 21:28:00 GMT\r\n"
> -> "Vary: Accept-Encoding\r\n"
> -> "Connection: close\r\n"
> -> "\r\n"
> reading 139 bytes...
> -> "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<hash>\n  <request>/1/
> statuses/update.xml</request>\n  <error>Invalid / expired Token</error>
> \n</hash>\n"
> 
> Any other thoughts?
> 
> 
> On Sep 9, 3:37 pm, Taylor Singletary <taylorsinglet...@twitter.com>
> wrote:
>> Happy to help further:
>>
>> The line access_token.get("/statuses/update.xml" has two problems...
>>
>> 1. should have the version slug added in.. /1/statuses/update.xml
>> 2. creating a status update requires the POST HTTP method (as opposed to
>> GET)
>>
>> You're very close, provided everything else is working correctly.
>>
>> Taylor
>>
>>
>>
>> On Thu, Sep 9, 2010 at 12:30 PM, EranD <eran.davi...@gmail.com> wrote:
>>> Hi Taylor,
>>
>>> Thanks for the quick response. I stand corrected on the three-legged
>>> authentication. Skipping a few steps doesn't make it 2 :)
>>
>>> You're right about the typo - the code I was using was incorrect.
>>> Having fixed it, however, didn't seem to help. Here's the response I'm
>>> getting (after the fix):
>>> -> "HTTP/1.1 401 Unauthorized\r\n"
>>> -> "Date: Thu, 09 Sep 2010 19:25:23 GMT\r\n"
>>> -> "Server: hi\r\n"
>>> -> "Status: 401 Unauthorized\r\n"
>>> -> "WWW-Authenticate: Basic realm=\"Twitter API\"\r\n"
>>> -> "Content-Type: application/xml; charset=utf-8\r\n"
>>> -> "Content-Length: 137\r\n"
>>> -> "Cache-Control: no-cache, max-age=1800\r\n"
>>> -> "Set-Cookie: k=71.183.40.72.1284060323860138; path=/; expires=Thu,
>>> 16-Sep-10 19:25:23 GMT; domain=.twitter.com\r\n"
>>> -> "Set-Cookie: guest_id=128406032386923588; path=/; expires=Sat, 09
>>> Oct 2010 19:25:23 GMT\r\n"
>>> -> "Set-Cookie:
>>> _twitter_sess=BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
>>> %250ASGFzaHsABjoKQHVzZWR7AA%253D
>>> %253D--1164b91ac812d853b877e93ddb612b7471bebc74; domain=.twitter.com;
>>> path=/\r\n"
>>> -> "Expires: Thu, 09 Sep 2010 19:55:23 GMT\r\n"
>>> -> "Vary: Accept-Encoding\r\n"
>>> -> "Connection: close\r\n"
>>> -> "\r\n"
>>
>>> The new code is now:
>>> consumer = OAuth::Consumer.new("KEY", "SECRET", { :site => "http://
>>> api.twitter.com", :scheme => :header })
>>
>>> token_hash = { :oauth_token => "OTHER KEY", :oauth_token_secret =>
>>> "OTHER SECRET"}
>>
>>> access_token = OAuth::AccessToken.from_hash(consumer, token_hash)
>>
>>> res = access_token.get("/statuses/update.xml", {"status" => "Hello
>>> tweet"})
>>
>>> Any thoughts?
>>
>>> thanks,
>>
>>> Eran
>>
>>> On Sep 9, 1:37 pm, Taylor Singletary <taylorsinglet...@twitter.com>
>>> wrote:
>>>> Hi Eran,
>>
>>>> First, just a clarification of terms: this isn't technically "2-legged"
>>>> OAuth, this is still three-legged.
>>
>>>> The code you've pasted here has a mis-spelled key name for ":oauth_token"
>>>> (you've provided "oath_token" -- is this true of the code you are
>>> executing
>>>> as well?
>>
>>>> I haven't personally tested the 0.4.3 version of the Ruby gem, but have
>>> had
>>>> ongoing affection for version 0.3.6 for some time.
>>
>>>> Finally, the error message you are getting back from Twitter is actually
>>>> more detailed than what you see in the default exception raising of the
>>>> OAuth gem. You'll need to take a look at the raw body response we send
>>> you
>>>> for more information on why this error might be occurring.
>>
>>>> Thanks,
>>>> Taylor
>>
>>>> On Thu, Sep 9, 2010 at 10:19 AM, EranD <eran.davi...@gmail.com> wrote:
>>>>> Hi,
>>
>>>>> I'm trying to get a server app to tweet messages to one specific
>>>>> account I own. I'm following Twitter's instructions on Twitter's wiki:
>>>>> http://developer.twitter.com/pages/oauth_single_token#ruby
>>
>>>>> I can read information from twitter (e.g. get last 20 tweets), but
>>>>> when I try to update my status I get the error "Could not authenticate
>>>>> with OAuth" in the body of the 401 response.
>>
>>>>> The simplified code I'm using is below. Key , secret, access token and
>>>>> secret are all copied from my twitter application page on
>>>>> developer.twitter.com. OAuth gem version 0.4.3.
>>
>>>>> Any thoughts or suggestions?
>>
>>>>> ------
>>>>> consumer = OAuth::Consumer.new("MY KEY", "MY SECRET", { :site =>
>>>>> "http://api.twitter.com";, :scheme => :header })
>>
>>>>> token_hash = { :oath_token => "MY ACCESS TOKEN", :oauth_token_secret
>>>>> => "MY ACCESS SECRET"}
>>>>> access_token = OAuth::AccessToken.from_hash(consumer, token_hash)
>>
>>>>> res = access_token.get("/statuses/update.xml", {"status" => "Hello
>>>>> tweet"})
>>>>> -----
>>
>>>>> Response:
>>>>> <Net::HTTPUnauthorized 401 Unauthorized readbody=true>
>>
>>>>> thanks,
>>
>>>>> Eran
>>
>>>>> --
>>>>> Twitter developer documentation and resources:
>>> http://dev.twitter.com/doc
>>>>> API updates via Twitter:http://twitter.com/twitterapi
>>>>> Issues/Enhancements Tracker:
>>>>> http://code.google.com/p/twitter-api/issues/list
>>>>> Change your membership to this group:
>>>>> http://groups.google.com/group/twitter-development-talk?hl=en
>>
>>> --
>>> Twitter developer documentation and resources:http://dev.twitter.com/doc
>>> API updates via Twitter:http://twitter.com/twitterapi
>>> Issues/Enhancements Tracker:
>>> http://code.google.com/p/twitter-api/issues/list
>>> Change your membership to this group:
>>> http://groups.google.com/group/twitter-development-talk?hl=en
> 

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk?hl=en

Reply via email to