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