I just looked up the Perl documentation for HTTP::Request and while I'm
not really a Perl programmer, I *think* that this page can help you turn
on verbose logging for requests :
http://search.cpan.org/~gaas/libwww-perl-5.836/lib/HTTP/Config.pm

Also, I noticed that you typed "authorization" instead of
"Authorization". It could make a difference.

Also, you seem to send a content-type of text/xml. Are you sending XML data?

Another thing I noticed is that you seem to send "status" as a header.
It's a POST value. The same goes for the oauth_* parameters, which are
supposed to be part of the Authorization: header.

Tom


On 9/3/10 2:25 PM, Lars wrote:
> I think, I have the base string now, the signature and all the other
> data. I validated it with http://quonos.nl/oauthTester/ and everything
> is fine. However, I am still gettin 401 or 501 error.
> 
> This is my base string:
> 
> POST&http%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses
> %2Fupdate.xml&oauth_consumer_key%3D0E1xSiyE03RTEms3WfQ%26oauth_nonce
> %3D1000000001%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp
> %3Doauth_timestamp%26oauth_token%3D88893619-
> JS87TMQDkUjM7Ufq119njayEJBuihVQmMEuTu3Ugi%26oauth_version
> %3D1.0%26status%3DHallo%252C%2520hier%2520ist%2520Lars
> 
> I think I still don't know exactly how to send all the data to twitter
> using HTTP::Request (I don't have Net::OAuth). My code:
> 
> my $request = HTTP::Request->new(POST => $api_url);
> $request->header(
>      authorization => 'OAuth realm="https://api.twitter.com/oauth/',
>      oauth_nonce => $oauth_nonce,
>      oauth_signature_method => $oauth_signature_method,
>      oauth_timestamp => $oauth_timestamp,
>      oauth_consumer_key => $oauth_consumer_key,
>      oauth_token => $oauth_token,
>      oauth_signature => $signature,
>      oauth_version => $oauth_version
>      status => $status
>       );
> $request->content_type("text/xml; charset=utf-8");
> my $res = $ua->request($request);
> 
> Can someone help me?
> 
> On Sep 3, 10:46 am, Tom van der Woerdt <[email protected]> wrote:
>> I usually use Wireshark for that, but it won't work with https://
>> connections. If you use cURL in PHP, there's an option for verbose
>> output. I'm not sure about Perl, but Wireshark should help :)
>>
>> Tom
>>
>> On 9/3/10 10:42 AM, Lars wrote:
>>
>>> I Tom,
>>
>>> thanks for the validator! This is really a helpful tool. Can you
>>> explain me how to generat a dump of my http request? I have no idea
>>> how to do this in Perl.
>>
>>> Thanks & Best regards,
>>> Lars
>>
>>> On Sep 3, 9:41 am, Tom van der Woerdt <[email protected]> wrote:
>>>> On 9/3/10 12:28 AM, Lars wrote:> Why aren't my answers to Tom being 
>>>> displayed?
>>
>>>> No idea.
>>
>>>>> I based my program on the exmaples I found 
>>>>> underhttp://apiwiki.twitter.com/OAuth-Examples
>>>>> especially on the example of Scott 
>>>>> Carterhttp://www.social.com/main/twitter-oauth-using-perl/.
>>>>> I followed his comment:
>>
>>>>> # Add padding character to make a multiple of 4 per the
>>>>>     # requirement of OAuth.
>>>>>     $signature .= "=";
>>
>>>> As long as the amount of characters is a multiple of 4, it's fine. :)
>>
>>>>>> I also noticed that you don't URL encode the values in $content. If I
>>>>>> recall correctly, you have to URL encode those as well.
>>
>>>>> I think I do encode them with
>>
>>>>> my $signature_base_str = "POST&" . uri_escape_RFC3986($api_url) .
>>>>> "&" . uri_escape_RFC3986($content);
>>
>>>>> correct?
>>
>>>> No, you need to urlencode the key/value as well, and later urlencode the
>>>> complete body.
>>
>>>>>> If that was not the issue, then please show your Base String and the
>>>>>> HTTP request.
>>
>>>>> This is the base string:
>>
>>>>> POST&http%3A%2F2Fapi.twitter.com%2F1%2Fstatuses
>>>>> %2Fupdate.json&oauth_consumer_key%3DXXX%26oauth_nonce
>>>>> %3D10000000001%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp
>>>>> %3D1272325550%26oauth_token%3DXXX%26oauth_version%3D1.0%26status
>>>>> %3DHello%20world
>>
>>>> Quoting my validator (http://quonos.nl/oauthTester/) :
>>>> # Bad URL encoding!
>>>> # Both key and value in the POST body need to be URL encoded.
>>
>>>>> What do you mean with show us the HTTP request. I think I am doing the
>>>>> HTTP request with
>>
>>>>> my $ua = LWP::UserAgent->new;
>>>>> my $req = POST($api_url => [
>>>>>            oauth_nonce => $oauth_nonce,
>>>>>            oauth_signature_method => $oauth_signature_method,
>>>>>            oauth_timestamp => $oauth_timestamp,
>>>>>            oauth_consumer_key => $oauth_consumer_key,
>>>>>            oauth_token => $oauth_token,
>>>>>            oauth_signature => $signature,
>>>>>            oauth_version => $oauth_version,
>>>>>            status => $status
>>>>>            ]);
>>
>>>>> # Make the request
>>>>> my $res = $ua->request($req);
>>
>>>> Actually I meant a dump of the request you make, like the "POST
>>>> /endpoint HTTP/1.1" part, including headers.
>>
>>>> Tom
>>
>>>>> On 3 Sep., 00:23, Lars <[email protected]> wrote:
>>>>>> Sorry, I don't habe shell access...
>>
>>>>>> On 3 Sep., 00:20, Marc Mims <[email protected]> wrote:
>>
>>>>>>>> I am not a Perl expert but I have developed a small web page with Perl
>>>>>>>> which is somewhat popular in Germany (according to Alexa trafic rank <
>>>>>>>> 1000). And this web site is tweeting important events using its own
>>>>>>>> twitter account.
>>
>>>>>>>> I tried for days but I am not able to get it working (tweeting) again.
>>
>>>>>>>> I registered my web page/application and want to use my access tokens
>>>>>>>> "oauth_token" and "oauth_token_secret" which I find under my
>>>>>>>> application settings because I am using only this twitter account to
>>>>>>>> tweet (seehttp://dev.twitter.com/pages/oauth_single_token)
>>
>>>>>>>> But the response is always "401 Unauthorized"!
>>
>>>>>>>> Any ideas?
>>
>>>>>>>> My Perl program looks like this (my provider does not offer the module
>>>>>>>> NET::Twitter)
>>
>>>>>>> If you have shell access, you can probably install local::lib using the
>>>>>>> bootstrap method, then install Net::Twitter or Net::Twitter::Lite in
>>>>>>> your own directory.
>>
>>>>>>>         -Marc
> 

-- 
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