Matt, here's what I'm getting back:
On Tue, Apr 21, 2009 at 9:58 AM, Matt Sanford <m...@twitter.com> wrote:

>
> Hi Jesse,
>
>    The best debugging information is:
>
> 1. The error message from your 401.
>   » Example: "Failed to validate oauth signature or token"


"Missing authenticate header"


>
>
> 2. The signature base string. In other words, the string you used to create
> the signature.
>  » Example: See [1] for an example.
>

Any idea how to get this using Perl's Net::OAuth?


>
> 3. What oauth application is this for?
>  » Example: http://twitter.com/oauth_clients/details/104


It's for the SocialToo.com application:
http://twitter.com/oauth_clients/details/61



>
> On Apr 20, 2009, at 07:59 PM, Jesse Stay wrote:
>
>  I'm getting 401 Unauthorized when trying to use Net::OAuth in Perl to
>> access Twitter - it's happening in trying to swap the request token for the
>> access token (in the second block below, from the $ua->post()).  I was just
>> wondering what the best method for debugging this would be.  Here's my code
>> (it's in Catalyst, so the $c's are from the Framework environment):
>>
>> sub authenticate_twitter : Local {
>>    my ($self, $c) = @_;
>>
>>    unless ($c->user_session->{'request_token'} &&
>> $c->user_session->{'request_token_secret'}) {
>>        my $request = Net::OAuth->request("request token")->new(
>>            consumer_key => $c->config->{'twitter_consumer_key'},
>>            consumer_secret => $c->config->{'twitter_consumer_secret'},
>>            request_url => $c->config->{'twitter_request_url'},
>>            request_method => 'GET',
>>            signature_method => 'HMAC-SHA1',
>>            timestamp => time,
>>            nonce => join('', rand_chars(size=>16, set=>'alphanumeric')),
>>        );
>>        $request->sign();
>>
>>        $c->log->debug("URL: ".$request->to_url);
>>
>>        my $ua = LWP::UserAgent->new;
>>        my $res = $ua->get($request->to_url); # post request to Twitter
>>
>>        if ($res->is_success) {
>>            my $response = Net::OAuth->response('request
>> token')->from_post_body($res->content);
>>            $c->user_session->{'request_token'} = $response->token;
>>            $c->user_session->{'request_token_secret'} =
>> $response->token_secret;
>>
>>            if (defined $c->user_session->{'request_token'}) {
>>                my $auth_url =
>> $c->config->{'twitter_authorize_token_url'}."?oauth_token=" .
>> $c->user_session->{'request_token'} .
>> "&redirect_url=".uri_escape($c->req->param("redi
>> rect_url"));;
>>                $c->res->redirect($auth_url);
>>                $c->detach;
>>                return;
>>            }
>>        }
>>        else {
>>            $c->log->fatal("Something went wrong.");
>>        }
>>    }
>>    else {
>>        $c->log->debug("request_token:
>> ".$c->user_session->{'request_token'});
>>        $c->log->debug("request_token_secret:
>> ".$c->user_session->{'request_token_secret'});
>>        my $request = Net::OAuth->request("access token")->new(
>>            consumer_key        => $c->config->{'twitter_consumer_key'},
>>            consumer_secret     => $c->config->{'twitter_consumer_secret'},
>>            token               => $c->user_session->{'request_token'},
>>            token_secret        =>
>> $c->user_session->{'request_token_secret'},
>>            request_url         =>
>> $c->config->{'twitter_access_token_url'},
>>            request_method      => 'POST',
>>            signature_method    => 'HMAC-SHA1',
>>            timestamp           => time,
>>            nonce               => join('', rand_chars(size=>16,
>> set=>'alphanumeric')),
>>        );
>>        $request->sign();
>>
>>        $c->log->debug("URL: ".$request->to_url);
>>
>>        my $ua = LWP::UserAgent->new;
>>        my $res = $ua->post($request->to_url); # post request to Twitter
>>
>>        if ($res->is_success) {
>>            my $response = Net::OAuth->response('access
>> token')->from_post_body($res->content);
>>            $c->user_session->{'access_token'} = $response->token;
>>            $c->user_session->{'access_token_secret'} =
>> $response->token_secret;
>>
>>
>>  $c->res->redirect(uri_unescape($c->req->param('redirect_url')));
>>        }
>>        else {
>>            $c->log->fatal("Could not get an Access Token: " .
>> $res->status_line . " " . $res->content);
>>        }
>>
>>    }
>>
>> }
>>
>> -...@jesse
>>
>
>

Reply via email to