After much gnashing of teeth, I've got some simple OAuth code working.
Since
I couldn't find any 2 legged example code that particularly pertained
to
doing OAuth for Google Apps, I figure I'll post mine in the hope that
it
might help someone else.

I've added an example into the extra_params section to make things a
bit
clearer about where url arguments go (in this case max-results=50).

This is written for clarity, not because its particularly elegant...

Cheers,
David Murrell


#!/usr/bin/perl -w

use Net::OAuth;
use HTTP::Request::Common;
use LWP::UserAgent;
use Data::Dumper;

my $key         = 'replace with oauth consumer key';
my $secret      = 'replace with oauth consumer secret';
my $username    = 'replace with valid username on hosted domain';

my $req_url     = 'http://www.google.com/m8/feeds/contacts/default/
full';
my $email       = $username.'@'.$key;
my $xoauth      = 'xoauth_requestor_id';
my $extra_arg   = 'max-results';
my $extra_val   = '50';
my $req_method  = 'GET';
my $sig_method  = 'HMAC-SHA1';
my $timestamp   = time;
my $nonce       = int(rand(99999999));

my $geturl = $req_url.'?'.$xoauth.'='.$email.'&'.$extra_arg.'='.
$extra_val;


my $request = Net::OAuth->request('consumer')->new(
        consumer_key => $key,
        consumer_secret => $secret,
        request_url =>  $req_url,
        request_method => $req_method,
        signature_method => $sig_method,
        timestamp => $timestamp,
        nonce => $nonce,
        extra_params => {
            $extra_arg => $extra_val,
            $xoauth => $email,
        }
);

$request->sign;

my $lwp_object = LWP::UserAgent->new;
$lwp_object->default_header('Content-type' => 'application/atom+xml');
$lwp_object->default_header('Authorization' =>
$request->to_authorization_header);
$lwp_object->default_header('Accept-Encoding' => 'identity');

my $response = $lwp_object->get( $geturl );

print Dumper($response);


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Apps APIs" 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-apps-apis?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to