jcroll/foursquare-api-bundle

Symfony bundle for the jcroll/foursquare-api-client

Installs: 17 329

Dependents: 0

Suggesters: 0

Security: 0

Stars: 6

Watchers: 3

Forks: 2

Open Issues: 0

Type:symfony-bundle

v1.1.4 2016-09-07 19:08 UTC

This package is not auto-updated.

Last update: 2024-12-21 15:08:43 UTC


README

Build Status Total Downloads Monthly Downloads Latest Stable Version License

This bundle integrates the JcrollFoursquareApiClient into the Symfony framework.

Why?

This bundle will allow you to easily configure the JcrollFoursquareApiClient and additionally easily allow you to integrate with the HWIOAuthBundle (if you are using it) for signed requests to the foursquare api (see the JcrollFoursquareApiBundleSandbox for examples).

Installation

Add JcrollFoursquareApiBundle in your composer.json:

{
    "require": {
        "jcroll/foursquare-api-bundle": "~1"
    }
}

Download bundle:

$ php composer.phar update jcroll/foursquare-api-bundle

Add the JcrollFoursquareApiBundle to your AppKernel.php

// app/AppKernel.php

    public function registerBundles()
    {
        $bundles = array(
            ...
            new Jcroll\FoursquareApiBundle\JcrollFoursquareApiBundle(),
            ...
        );
        ...
    }

Basic configuration

  1. If you're not using HWIOAuthBundle add your application id and secret parameters (other parameters are optional):

    # app/config/config.yml
    
    jcroll_foursquare_api:
        client_id:     <your_foursquare_client_id>     
        client_secret: <your_foursquare_client_secret>
        version:       20140806                        # optional
        mode:          foursquare                      # optional
  2. If you are using HWIOAuthBundle configure a foursquare resource owner and the client's credentials will automatically be configured (unless you wish to specify custom values for version or mode).

    # app/config/config.yml
    
    hwi_oauth:
        resource_owners:
            any_name:
                type:          foursquare
                client_id:     <your_foursquare_client_id>     # will automatically inject in the client
                client_secret: <your_foursquare_client_secret> # will automatically inject in the client

Usage

$client = $this->container->get('jcroll_foursquare_client');

$client->setToken($oauthToken); // optional for user specific requests

$client->setMode('swarm');      // switch from mode 'foursquare' to 'swarm'

$command = $client->getCommand('venues/search', [
    'near'  => 'Chicago, IL',
    'query' => 'sushi'
]);

$results = (array) $client->execute($command); // returns an array of results

You can find a list of the client's available commands in the bundle's client.json but basically they should be the same as the api endpoints listed in the docs.

HWIOAuthBundle Integration

If you are using HWIOAuthBundle this bundle will automatically look for a resource_owner of type foursquare in that bundle's configuration and inject the client_id and client_secret into the jcroll_foursquare_client service (no need to configure this bundle unless you want to define custom values for version or mode).

Additionally a listener will be configured and if the authenticated user possesses an oauth token belonging to foursquare the token will be automatically injected into the jcroll_foursquare_client service for signed requests (no need to call setToken).