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