Skip to content

sara62/foursquare-php

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Foursquare API Client by TheTwelve Labs

A(nother) PHP Foursquare API client
https://developer.foursquare.com/docs/

Installation

Composer is currently the only way to install the foursquare client into your project.

Create your composer.json file

  {
      "require": {
          "thetwelvelabs/foursquare": "dev-master@dev"
      }
  }

Download composer into your application root

  $ curl -s http://getcomposer.org/installer | php

Install your dependencies

  $ php composer.phar install

Usage

Select your preferred HTTP Client (CurlHttpClient is the default)

  $client = new \TheTwelve\Foursquare\HttpClient\CurlHttpClient($pathToCertificateFile);

Select your preferred Redirector (HeaderRedirector is the default)

  $redirector = new \TheTwelve\Foursquare\Redirector\HeaderRedirector();

Note: The redirector is optional and is only needed if you need Foursquare authentication

Instantiate the API Gateway Factory

  $factory = new \TheTwelve\Foursquare\ApiGatewayFactory($client, $redirector);
  
  // Required for most requests
  $factory->setClientCredentials('CLIENT_ID', 'CLIENT_SECRET');

  // Optional
  $factory->setEndpointUri('https://api.foursquare.com');
  $factory->useVersion(2);

Begin authentication with Foursquare

  $auth = $factory->getAuthenticationGateway(
      'https://foursquare.com/oauth2/authorize',
      'https://foursquare.com/oauth2/access_token',
      'YOUR_REDIRECT_URL'
  );

  $auth->initiateLogin();

Foursquare redirects the user back to you after a successful login

  $code = $_GET['code'];

  // You should do some input sanitization to $code here, just in case  
   
  $token = $authGateway->authenticateUser($code);

Update the API Gateway Factory with your OAuth token

  $factory->setToken($token);

Get an instance of an endpoint gateway

  $gateway = $factory->getUsersGateway();

Get data from Foursquare

  $user = $gateway->getUser();

Search venues

  $gateway = $factory->getVenuesGateway();

  $venues = $gateway->search(array(
    'll' => '40.727198,-73.992289',
    'query' => 'Starbucks',
    'radius' => 1000,
    'intent' => 'checkin'
  ));

Working With Symfony / Silex

If you're working with Symfony or Silex, you can use the Symfony HttpClient and Redirector

  $client = new \TheTwelve\Foursquare\HttpClient\SymfonyHttpClient();
  $redirector = new \TheTwelve\Foursquare\Redirector\SymfonyRedirector();  

If you're working with Silex, there is a Service Provider available at https://github.com/chriswoodford/FoursquareServiceProvider

Using the CurlHttpClient

If you're using the CurlHttpClient, you will probably want to include the cacert.pem file that can be found at http://curl.haxx.se/docs/caextract.html

You can add this as a dependency in your composer file. Your composer.json might look something like this:

  {
      "require": {
          "thetwelvelabs/foursquare": "dev-master@dev",
          "haxx-se/curl": "1.0.0"
      },
      "repositories": [
          {
              "type": "package",
              "package": {
                  "name": "haxx-se/curl",
                  "version": "1.0.0",
                  "dist": {
                      "url": "http://curl.haxx.se/ca/cacert.pem",
                      "type": "file"
                  }
              }
          }
      ]
  }

You will be able to find the cacert.pem file in vendor/haxx-se/curl/cacert.pem

License

This library is released under the MIT License.

About

A(nother) PHP Foursquare API client

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%