NAME Yahoo::BBAuth - Perl interface to the Yahoo! Browser-Based Authentication. SYNOPSIS my $bbauth = Yahoo::BBAuth->new( appid => $appid, secret => $secret, ); # Get your appid and secret by registering your application here: # https://developer.yahoo.com/wsregapp/index.php # Create an authentication link printf 'Click here to authorize', $bbauth->auth_url; # You can include some application data or return a user hash using optional params: printf 'Click here to authorize', $bbauth->auth_url( send_userhash => '1', appdata => 'someappdata', ); # After the user authenticates successfully, Yahoo returns the user to the page you # dictated when you signed up. To verify whether authentication succeeded, you need to # validate the signature: if (!$bbauth->validate_sig()) { print '

Authentication Failed. Error is:

'.$bbauth->{sig_validation_error}; exit(0); } # You can then make an authenticated web service call on behalf of the user # For Yahoo! Mail: my $json = $bbauth->make_jsonrpc_call('ListFolders', [{}] ); if (!$json) { print '

Web services call failed. Error is:

'. $bbauth->{access_credentials_error}; exit(0); } # For Yahoo! Photos: my $url = 'http://photos.yahooapis.com/V3.0/listAlbums?'; my $xml = $bbauth->auth_ws_get_call($url); if (!$xml) { print '

Web services call failed. Error is:

'. $bbauth->{access_credentials_error}; exit(0); } DESCRIPTION This module priovides an Object Oriented interface for Yahoo! Browser-Based Authentication. This module is ported from the official PHP class which is located on this page: http://developer.yahoo.com/php METHODS new(appid => $appid, secret => $secret) Returns an instance of this module. You must set the your application id and shared secret. auth_url(%param) Create the Login URL used to fetch authentication credentials. This is the first step in the browser authentication process. You can set the %param to send_userhash and appdata if you need(optional). The appdata typically a session id that Yahoo will transfer to the target application upon successful authentication. If send_userhash set, the send_userhash=1 request will be appended to the request URL so that the userhash will be returned by Yahoo! after successful authentication. validate_sig Validates the signature returned by Yahoo's browser authentication services. Returns false if the sig is invalid. Returns 0 if any error occurs. If 0 is returned, $self->sig_validation_error should contain a string describing the error. auth_ws_get_call($url) Make an authenticated web services call using HTTP GET. Returns response if successful, a string is returned containing the web service response which might be XML, JSON, or some other type of text. If an error occurs, 0 is returned, and the error is stored in $self->access_credentials_error. auth_ws_post_call($url) Make an authenticated web services call using HTTP POST. make_jsonrpc_call($method, $params) Make an authenticated web services JSON-RPC call. sig_validation_error The error message when validate_sig fails. access_credentials_error The error message when auth_ws_get_call or auth_ws_post_call fail. ACCESSORS appid secret userhash appdata timeout token WSSID cookie AUTHORS Jiro Nishiguchi Ejiro@cpan.orgE Jason Levitt Ejlevitt@yahoo-inc.comE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO * http://developer.yahoo.com/auth/