GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  LWP::AUTHEN::OAUTH (3)

.ds Aq ’

NAME

LWP::Authen::OAuth - generate signed OAuth requests

CONTENTS

SYNOPSIS



        require LWP::Authen::OAuth;



    Google



        # Google uses anonymous for unregistered Web/offline applications or the
        # domain name for registered Web applications
        my $ua = LWP::Authen::OAuth->new(
                oauth_consumer_secret => "anonymous",
        );
       
        # request a request token
        my $r = $ua->post( "https://www.google.com/accounts/OAuthGetRequestToken",
                [
                        oauth_consumer_key => anonymous,
                        oauth_callback => http://example.net/oauth,
                        xoauth_displayname => Example Application,
                        scope => https://docs.google.com/feeds/,
                ]
        );
        die $r->as_string if $r->is_error;
       
        # update the token secret from the HTTP response
        $ua->oauth_update_from_response( $r );
       
        # open a browser for the user
       
        # data are returned as form-encoded
        my $uri = URI->new( http: );
        $uri->query( $r->content );
        my %oauth_data = $uri->query_form;
       
        # Direct the user to here to grant you access:
        # https://www.google.com/accounts/OAuthAuthorizeToken?
        #       oauth_token=$oauth_data{oauth_token}\n";
       
        # turn the request token into an access token with the verifier
        # returned by google
        $r = $ua->post( "https://www.google.com/accounts/OAuthGetAccessToken", [
                oauth_consumer_key => anonymous,
                oauth_token => $oauth_data{oauth_token},
                oauth_verifier => $oauth_verifier,
        ]);
       
        # update the token secret from the HTTP response
        $ua->oauth_update_from_response( $r );
       
        # now use the $ua to perform whatever actions you want



    Twitter

Sending status updates to a single account is quite easy if you create an application. The oauth_consumer_key and oauth_consumer_secret come from the ’Application Details’ page and the oauth_token and oauth_token_secret from the ’My Access Token’ page.



        my $ua = LWP::Authen::OAuth->new(
                oauth_consumer_key => xxx1,
                oauth_consumer_secret => xxx2,
                oauth_token => yyy1,
                oauth_token_secret => yyy2,
        );
       
        $ua->post( http://api.twitter.com/1/statuses/update.json, [
                status => Posted this using LWP::Authen::OAuth!
        ]);



DESCRIPTION

This module provides a sub-class of LWP::UserAgent that generates OAuth 1.0 signed requests. You should familiarise yourself with OAuth at <http://oauth.net/>.

This module only supports HMAC_SHA1 signing.

OAuth nonces are generated using the Perl random number generator. To set a nonce manually define ’oauth_nonce’ in your requests via a CGI parameter or the Authorization header - see the OAuth documentation.

METHODS

$ua = LWP::Authen::OAuth->new( ... ) Takes the same options as new in LWP::UserAgent plus optionally:



        oauth_consumer_key
        oauth_consumer_secret
        oauth_token
        oauth_token_secret



Most services will require some or all of these to be set even if it’s just ’anonymous’.

$ua->oauth_update_from_response( $r ) Update the oauth_token and oauth_token_secret from an HTTP::Response object returned by a previous request e.g. when converting a request token into an access token.
$key = $ua->oauth_consumer_key( [ KEY ] ) Get and optionally set the consumer key.
$secret = $ua->oauth_consumer_secret( [ SECRET ] ) Get and optionally set the consumer secret.
$token = $ua->oauth_token( [ TOKEN ] ) Get and optionally set the oauth token.
$secret = $ua->oauth_token_secret( [ SECRET ] ) Get and optionally set the oauth token secret.

SEE ALSO

LWP::UserAgent, MIME::Base64, Digest::SHA, URI, URI::Escape

    Rationale

I think the complexity in OAuth is in the parameter normalisation and message signing. What this module does is to hide that complexity without replicating the higher-level protocol chatter.

In Net::OAuth:



        $r = Net::OAuth->request(request token)->new(
                consumer_key => xxx,
                request_url => https://photos.example.net/request_token,
                callback => http://printer.example.com/request_token_ready,
                ...
                extra_params {
                        scope => global,
                }
        );
        $r->sign;
        $res = $ua->request(POST $r->to_url);
        $res = Net::OAuth->response(request token)
                ->from_post_body($res->content);
        ... etc



In LWP::Authen::OAuth:



        $ua = LWP::Authen::OAuth->new(
                oauth_consumer_key => xxx
        );
        $res = $ua->post( https://photos.example.net/request_token, [
                oauth_callback => http://printer.example.com/request_token_ready,
                ...
                scope => global,
        ]);
        $ua->oauth_update_from_response( $res );
        ... etc



Net::OAuth, OAuth::Lite.

AUTHOR

Timothy D Brody <tdb2@ecs.soton.ac.uk>

Copyright 2011 University of Southampton, UK

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 LWP::AUTHEN::OAUTH (3) 2013-02-06

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.