NAME

WebService::Yelp - Yelp.com API Client Implementation

SYNOPSIS

use strict;
use WebService::Yelp;

my $yelp = WebService::Yelp->new({ywsid => 'XXXXXXXXXXXX'});

my $biz_res = $yelp->search_review_hood({
                                            term => 'cream puffs',
                                            location => 'San Francisco',
                                            };
for my $biz (@{$biz_res->businesses()}) {

  my @reviews = $biz->reviews();
  my @hoods = $biz->neighborhoods();

}

DESCRIPTION

This module implements a programmatic interface to yelp.com's public REST API.

REQUIREMENTS

Before you can use this module, you'll need to obtain your very own "Yelp Web Service ID" (ywsid) from http://www.yelp.com/developers. While you are there, I'd also urge you to read Yelp's Terms of Use and documentation.

Much more documentation is available on Yelp's site:

http://www.yelp.com/developers/documentation

Most of the functions here map directly to API commands, so it would be a good idea to familiarize yourself with their documentation first and then take a look at the methods and parameters here.

METHODS

new

my $yelp = WebService::Yelp->new($hash_ref);

Required Parameters

    * ywsid - your Yelp Web Service ID.

Optional Parameters

    * http_proxy - specify a proxy server to use

    * http_timeout - specify a timeout (Default is 10 seconds)

Return Value

    * A new WebService::Yelp object, or undef if there were problems.

Review Search Functions

This set of functions searches for and returns review and business information. The following two parameters are common across these functions. Note that output determines the return values for all search functions as well.

    * output - Result output type.

This controls what is returned by the API. The default is WebService::Yelp::* objects. Other options are 'php', 'json', and 'pickle'. If one of these three options is specified, the raw data will be returned by the search function as a scalar value. Otherwise, a WebService::Yelp::Result object will be returned. If there was a transport level error, search functions simply return undef and print the requests status line to STDERR.

Your first step should be to check the WebService::Yelp::Message object available by calling the WebService::Yelp::Result->message() method and checking the value of code(). See:

http://www.yelp.com/developers/documentation/search_api#rCode

for more information on the return codes, messages, and error descriptions.

    * category - Narrow results to specific categories.

By selecting only specific categories, search results can be confined to businesses that match those categories. Multiple categories can be speficied by combining them with a plus sign, i.e. bars+poolhalls

search_review_bb - Searching by Map Bounding Box

Limit the search to an area within a specific geographical box specified by four geographic points.

Required Parameters

    * tl_lat - Top Left latitude of bounding box

    * tl_long - Top Left longitude of bounding box

    * br_lat - Bottom right latitude of bounding box

    * br_long - Bottom right longitude of bounding box

Optional Parameters

    * term - Business name or search term.

    * num_biz_requested - Number of businesses to return (1-20, Default 10).

search_review_gpr - Search by Geo-Point and Radius

Given a point and an outward radius, search for businesses within the area.

Required Parameters

    * lat - The latitude of the point.

    * long - The longitude of the point.

Optional Parameters

    * radius - The outward radius from the two points above, Max is 25.

    * term - Business name or search term.

    * num_biz_requested - Number of businesses to return (1-20, Default 10).

search_review_hood - Search by Neighborhood, Address or City

Given a general or specific location, search for matching businesses.

Required Parameters

    * location - An address, neighborhood, city, state, or zip code.

Optional Parameters

    * radius - The outward radius from the two points above, Max is 25.

    * term - Business name or search term.

    * num_biz_requested - Number of businesses to return (1-20, Default 10).

search_phone - Search by Phone Number

Find a specific business by phone number.

Required Parameter

    * phone - An all digit phone number (like 1-234-567-8901)

Neighborhood Search Functions

The following functions return neighborhood data. The output parameter as described above is valid for these as well.

search_neighborhood_geocode - Search for Neighborhoods by Geo-Ppoint

Given a latitude and longitude, return neighborhood information for the location.

Required Parameters

    * lat - The latitude.

    * long - The longitude.

search_neighborhood_location - Search by Address, City, State or Zip

Given a general or specific location, search for matching neighborhoods.

Required Parameters

    * location - An address, neighborhood, city, state, or zip code.

Other Functions

call - The actual search function caller

Call is the actual search implementation. The other functions call it by specifying the search function first, so if you'd prefer you can use it directly. Search functions names are separated by periods (in the same way the methods above use underscores) i.e.

$yelp->search_review_gpr({ ....

is the same as

$yelp->call('search.review.gpr', { ....

SEE ALSO

LWP::UserAgent

This module's source and other documentation is hosted at http://code.google.com/p/perl-www-yelp-api/

AUTHOR

josh rotenberg, <joshrotenberg@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2008 by josh rotenberg

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.

Note that this software is not maintained, endorsed, sponsored, supported, or otherwise managed by Yelp. All inquiries related to this software should be directed to the author.