JcrollFoursquareApiBundle
, (*1)
This bundle integrates the JcrollFoursquareApiClient into the Symfony
framework., (*2)
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)., (*3)
Installation
Add JcrollFoursquareApiBundle in your composer.json:, (*4)
{
"require": {
"jcroll/foursquare-api-bundle": "~1"
}
}
Download bundle:, (*5)
``` bash
$ php composer.phar update jcroll/foursquare-api-bundle, (*6)
Add the JcrollFoursquareApiBundle to your AppKernel.php
```php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
...
new Jcroll\FoursquareApiBundle\JcrollFoursquareApiBundle(),
...
);
...
}
Basic configuration
-
If you're not using HWIOAuthBundle add your application id and secret
parameters (other parameters are optional):, (*7)
# 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
-
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
)., (*8)
# 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., (*9)
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
)., (*10)
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
)., (*11)