heh, I don't even know why I would want to use V2 or not. I modified my request to add the content-type header. I think Net::OAuth is creating the Authorization header already. This is still failing with the exact same error.
Are there any examples of doing a GET request using perl and a 2- legged OAuth? -Rex On Apr 1, 12:51 pm, "Julian (Google)" <[email protected]> wrote: > Hi, > > I think you are missing the Content-Type and Authorization headers for > the GET: > > Content-Type: application/x-www-form-urlencoded > Authorization: OAuth > > If you want to use V2, you may also need the header: > GData-Version: 2 > > -Julian. > > On Mar 31, 6:24 pm, Rex Roof <[email protected]> wrote: > > > I am attempting to get a list of Google Apps contacts for a migration > > tool written in Perl. I have no problem processing a PUT request when > > making a new contact, but when I'm trying to process a GET request for > > a user I always get returned an "Authorization required" error. This > > is not a web application, and I'm using two-legged authentication as > > an admin of my domain. > > Here is how I'm creating the request, using Net::OAuth: > > > my $url = "http://www.google.com/m8/feeds/contacts/$user_email/ > > full"; > > my $time = time; > > my $nonce = md5_hex("nonce_key".$time); > > > my $request = Net::OAuth->request('consumer')->new( > > consumer_key => $consumer_key, > > consumer_secret => $consumer_secret, > > request_url => $url, > > signature_method => 'HMAC-SHA1', > > request_method => 'GET', > > timestamp => $time, > > nonce => $nonce, > > extra_params => { > > xoauth_requestor_id => $user_email, > > 'max-results' => 1000, > > }, > > ); > > $request->sign; > > my $lwp_request = GET $request->to_url; > > my $response = $lwp_object->request($lwp_request); > > > Here is code that does work, though, using a POST request. very > > similar process: > > > my $cont_url = "http://www.google.com/m8/feeds/contacts/$user/full"; > > my $time = time; > > my $nonce = md5_hex("nonce_key".$time); > > my $oauth_request = Net::OAuth->request('consumer')->new( > > consumer_key => $consumer_key, > > consumer_secret => $consumer_secret, > > request_url => $cont_url, > > request_method=>'POST', > > signature_method => 'HMAC-SHA1', > > timestamp => $time, > > nonce => $nonce, > > extra_params => { > > xoauth_requestor_id => $user, > > }, > > ); > > $oauth_request->sign; > > my $lwp_request = POST( > > $oauth_request->to_url, > > Content_Type => 'application/atom+xml', > > Content => $xml, > > ); > > my $response = $lwp_object->request( $lwp_request ); > > > Anyone see what I'm doing wrong? I've never successfully done an > > OAuth GET request. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Contacts API" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-contacts-api?hl=en -~----------~----~----~----~------~----~------~--~---
