The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    WWW::Foursquare - is a Perl wrapper for the Foursqauare API.

DESCRIPTION
    This wrapper help you send requests to Foursquare API and get result in easy way, OAuth is supported, quick integration with your current project.
    You can get more information about Foursquare API here: 
    https://developer.foursquare.com/ 


SYNOPSIS
    use WWW::Foursquare;
    
    # Create fs object
    my $fs = WWW::Foursquare->new(
        client_id     => 'client_id',
        client_secret => 'client_secret',
        redirect_uri  => 'redirect_uri',
    );

    # Set access_token
    my $access_token = 'XXXX';
    $fs->set_token($access_token);

    # Search users by name
    my $search_users = eval { $fs->users()->search(name => 'Pavel Vlasov') };
   
    if (not $@) {
        
        # work with result in Perl structure
        # print Dumper($search_users);
    }
    else {

        # process errors
        warn $@ if $@;
    }

INTEGRATION

    How to connect your apps with foursquare via OAuth 2.0.

      1. Create foursquare app: 

        https://foursquare.com/developers/apps

        Get Client ID, Client Secret and Callback url

        my $fs = WWW::Foursquare->new(
            client_id     => 'client_id',
            client_secret => 'client_secret',
            redirect_uri  => 'redirect_uri',
        );

      2. Get auth url for your apps:

        my $auth_url = $fs->get_auth_url();

        It looks like this:
        https://foursquare.com/oauth2/authenticate?client_id=client_id&redirect_uri=redirect_url&response_type=code

      3. Have a user authorize your app.

        Implement callback in your server. 

        - You click on auth url to go to autorize page. 
        - If authorization is successful you will redirect to callback url and get code.
        - Then you use this code for getting access_token for Foursquare API 

        http://your_server.com/callback&code=XXXXXXX
        my $code = ... # getting code here

        Allow app to access to your account in foursquare

        my $access_token = $fs->get_access_token($code);
        Background magic will send GET request to Foursquare API 

      4. Set access_token and using Foursquare API

        $fs->set_access_token($access_token);

    For more information I would like recommend you visit page:
    https://developer.foursquare.com/overview/auth

DEBUG MODE

my $fs = WWW::Foursquare->new(
    debug => 1,
);

METHODS

    new

      Creating a new foursquare object.

      my $fs = WWW::Foursquare->new(
          client_id     => 'client_id',
          client_secret => 'client_secret',
          redirect_uri  => 'redirect_uri',
      );

    get_auth_url
      Prepare auth url from Foursquare parameters (cliend_id, redirect_uri)

      my $auth_url = $fs->get_auth_url();

      If you want to use itself method for forsquare API:

      $fs->users->info(); # get info about users etc

    get_access_token
      Get code after redirect, and send GET request to fetch access token

      my $access_token = $fs->get_access_token($code);

    set_access_token
      Set access token for foursquare object

    users
      All users methods: https://developer.foursquare.com/docs/users/users

    venues
      All venues methods: https://developer.foursquare.com/docs/venues/venues

    venuegroups
      All venuegroups methods: https://developer.foursquare.com/docs/venuegroups/venuegroups

    checkins
      All checkins methods: https://developer.foursquare.com/docs/checkins/checkins

    tips
      All tips methods: https://developer.foursquare.com/docs/tips/tips

    lists
      All lists methods: https://developer.foursquare.com/docs/lists/lists

    updates
      All updates methods: https://developer.foursquare.com/docs/updates/updates

    photos
      All photos methods: https://developer.foursquare.com/docs/photos/photos

    settings
      All settings methods: https://developer.foursquare.com/docs/settings/settings

    specials
      All specials methods: https://developer.foursquare.com/docs/specials/specials

    campaigns
      All campaigns methods: https://developer.foursquare.com/docs/campaigns/campaigns

    events
      All events methods: https://developer.foursquare.com/docs/events/events

    pages
      All pages methods: https://developer.foursquare.com/docs/pages/pages

    pageupdates
      All pageupdates methods: https://developer.foursquare.com/docs/pageupdates/pageupdates

EXAMPLES
    You can see examples how to use WWW::Foursquare. 
    Here: /eg/test.pl

AUTHOR
    Pavel Vlasov, fxzuz at cpan.org

BUGS
    Please report any bugs or feature requests to bug-www-foursquare at rt.cpan.org, or through
    the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WWW-Foursquare.  I will be notified, and then you'll
    automatically be notified of progress on your bug as I make changes.

SUPPORT
    You can find documentation for this module with the perldoc command.
        perldoc WWW::Foursquare


    You can also look for information at:
    * Github 
    http://github.com/fxzuz/WWW-Foursquare/

    * RT: CPAN's request tracker (report bugs here)
    http://rt.cpan.org/NoAuth/Bugs.html?Dist=WWW-Foursquare

    * AnnoCPAN: Annotated CPAN documentation
    http://annocpan.org/dist/WWW-Foursquare

    * CPAN Ratings
    http://cpanratings.perl.org/d/WWW-Foursquare

    * Search CPAN
    http://search.cpan.org/dist/WWW-Foursquare/


LICENSE AND COPYRIGHT

Copyright 2012 Pavel Vlasov.

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