The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

WebService::Pandora::Partner - Pandora WebService API Partner

SYNOPSIS

  # creating a new Partner object

  package WebService::Pandora::Partner::MyPartner;

  use base 'WebService::Pandora::Partner';

  sub new {

    my $caller = shift;

    my $class = ref( $caller );
    $class = $caller if ( !$class );

    my $self = $class->SUPER::new( username => 'username',
                                   password => 'password',
                                   deviceModel => 'model',
                                   decryption_key => 'key',
                                   encryption_key => 'key',
                                   host => 'tuner.pandora.com' );

    return $self;
  }

  # using a partner object

  $partner = WebService::Pandora::Partner::MyPartner->new();
  $result = $partner->login() or die( $partner->error() );

DESCRIPTION

This module is a base class that should be inherited and not used directly. When logging in to the Pandora API, you must first login using a particular partner, such as an Apple iOS or Android device. Each partner has its own credentials and encryption/decryption keys, and some use different HTTP hosts than others to query the API. The WebService::Pandora package provides modules for several known partners and will default to using WebService::Pandora::Partner::iOS if one isn't provided.

CONSTRUCTOR

new

Creates a new WebService::Pandora::Partner object with the arguments given. All of the options are required and used by the login() method.

username => STRING [required]

The username of the partner to use when logging in.

password => STRING [required]

The password of the partner to use when logging in.

deviceModel => STRING [required]

The device model name to use when logging in.

encryption_key => STRING [required]

The encryption key to use when encrypting the JSON data being sent to the Pandora API method.

decryption_key => STRING [required]

The decryption key to use when decrypting the JSON data send back from the Pandora API method.

host => STRING [required]

The host portion of the URL to use when issuing the HTTP request to the Pandora API method.

METHODS

login

Returns a hashref containing the information from the login request when the login was successful, or a false value on failure. Internally, this will execute the auth.partnerLogin Pandora API method using the WebService::Pandora::Method library.

  $result = $partner->login() or die( $partner->error() );

error

Returns a string containing a message about why the login call failed. The error string may come from internally in the module, from a failed HTTP request, or from the Pandora API itself.

SEE ALSO

WebService::Pandora WebService::Pandora::Method

AUTHOR

Mitch McCracken <mrmccrac@gmail.com>