eBay::API::Simple
===========================

This module supports eBay's Shopping and Trading API services. In addition, eBay::API::Simple comes with a standard RSS and HTML back-end.

In order to use eBay aspects of this utility you must first register with eBay to get your `eBay Develoepr Site`_ API developer credentials] (see the ebay.yaml option for a way to tie these credentials into the Shopping and Trading back-ends)

Parallel Requests::

    my $pua = eBay::API::Simple::Parallel->new();

    my $call1 = eBay::API::Simple::RSS->new( {
        parallel => $pua,
    } );

    $call1->execute(
        ’http://worldofgood.ebay.com/Clothes-Shoes-Men/43/list?format=rss’,
    );

    my $call2 = eBay::API::Simple::RSS->new( {
        parallel => $pua,
    } );

    $call2->execute(
        ’http://worldofgood.ebay.com/Home-Garden/46/list?format=rss’
    );

    $pua->wait();

    if ( $pua->has_error() ) {
        print "ONE OR MORE FAILURES!\n";
    }

    print $call1->response_content() . "\n";
    print $call2->response_content() "\n";


Merchandising Services::

    use eBay::API::Simple::Merchandising;

    my $api = eBay::API::Simple::Merchandising->new( {
       appid   => '<your app id here>',
    } );

    $api->execute( 'getMostWatchedItems', { 
       maxResults => 3, categoryId => 267 
    });

    if ( $api->has_error() ) {
       die "Call Failed:" . $api->errors_as_string();
    }

    # getters for the response DOM or Hash
    my $dom  = $api->response_dom();
    my $hash = $api->response_hash();

  	 
[eBayAPISimpleMerchandising#Sandbox_Usage Sandbox Usage] |
[eBayAPISimpleMerchandising#Module_Documentation Module Documentation] 

Finding Services::

    use eBay::API::Simple::Finding;

    my $api = eBay::API::Simple::Finding->new( {
       appid   => 'myappid',
    } );

    $api->execute( 'findItemsByKeywords', { keywords => 'shoe' } );

    if ( $api->has_error() ) {
       die "Call Failed:" . $api->errors_as_string();
    }

    # getters for the response DOM or Hash
    my $dom  = $api->response_dom();
    my $hash = $api->response_hash();

[eBayAPISimpleFinding#Sandbox_Usage Sandbox Usage] |
[eBayAPISimpleFinding#Module_Documentation Module Documentation] 


Shopping Services::

    use eBay::API::Simple::Shopping;

    my $api = eBay::API::Simple::Shopping->new( {
       appid   => 'myappid',
    } );

    $api->execute( 'FindItemsAdvanced', { QueryKeywords => 'shoe' } );

    if ( $api->has_error() ) {
       die "Call Failed:" . $api->errors_as_string();
    }

    # getters for the response DOM or Hash
    my $dom  = $api->response_dom();
    my $hash = $api->response_hash();

[eBayAPISimpleShopping#Sandbox_Usage Sandbox Usage] |
[eBayAPISimpleShopping#Module_Documentation Module Documentation] 

Trading Services::

    use eBay::API::Simple::Trading;
  
    my $api = eBay::API::Simple::Trading->new( {
        appid   => 'myappid',
        devid   => 'mydevid',
        certid  => 'mycertid',
        token   => $mytoken,
    } );

    $api->execute( 'GetSearchResults', { Query => 'shoe' } );

    if ( $api->has_error() ) {
       die "Call Failed:" . $api->errors_as_string();
    }

    # getters for the response DOM or Hash
    my $dom  = $api->response_dom();
    my $hash = $api->response_hash();

[eBayAPISimpleTrading#Sandbox_Usage Sandbox Usage] |
[eBayAPISimpleTrading#Module_Documentation Module Documentation]

Generic JSON Backend::

    use eBay::API::Simple::JSON;

    my $api = eBay::API::Simple::JSON->new();

    # 'GET' call
    $api->get( 
       'http://localhost-django-vm.ebay.com/green/api/v1/greenerAlternative/32/'
    );

    if ( $api->has_error() ) {
        die "Call Failed:" . $api->errors_as_string();
    }

    # convenience methods
    my $hash = $api->response_hash();
    my $response_content = $api->response_content();
    my $request_content = $api->request_content();

    # HTTP::Request
    print $api->request->as_string();

    # HTTP::Response
    print $api->response->as_string();
    print $api->response->content();
    print $api->response->is_error();

    # HTTP::Headers
    print $api->response->headers->as_string();
    print $api->response->headers->content_type();

    # 'POST', 'PUT', 'DELETE' calls

    my $data = {     
        "user_eais_token" => "tim", 
        "body_text" => "mytext"
    };

    $api->post( 'http://myendpoint', $data );
    $api->put( 'http://myendpoint', $data );
    $api->delete( 'http://myendpoint' );

Generic HTML Backend::

    use eBay::API::Simple::HTML;

    my $api = eBay::API::Simple::HTML->new();

    $api->execute( 'http://www.example.com' );

    if ( $api->has_error() ) {
        die "Call Failed:" . $api->errors_as_string();
    }

    # getters for the response DOM or Hash
    my $dom  = $api->response_dom();
    my $hash = $api->response_hash();

Generic RSS Backend::

    use eBay::API::Simple::RSS;

    my $api = eBay::API::Simple::RSS->new();

    $api->execute( 
       'http://sfbay.craigslist.org/search/sss?query=shirt&format=rss'
    );

    if ( $api->has_error() ) {
        die "Call Failed:" . $api->errors_as_string();
    }

    # getters for the response DOM or Hash
    my $dom  = $api->response_dom();
    my $hash = $api->response_hash();

More Docs::

Visit CPAN to view the full documentation for [http://search.cpan.org/search?query=eBay%3A%3AAPI%3A%3ASimple eBay::API::Simple].


.. _eBay Developer Site: http://developer.ebay.com/