PHP client that utilizes Guzzle to interact with the Shutterstock API.
Use Composer to install the dependencies.
$ composer require shutterstock/api
Instantiating the client requires passing in your client id and secret, which you can register for on the Shutterstock Developers site.
<?php
require_once __DIR__ . '/vendor/autoload.php';
$client = new Shutterstock\Api\Client($clientId, $clientSecret);
Interacting with the different endpoints is as simple as reading the API documentation. There are two main methods of the client to deal with - Client::get
and Client::post
- which take an endpoint as their first argument and the client parameters as the second.
// perform an image search for puppies
$client->get('images/search', array('query' => 'puppies'));
// retrieve details for a handful of image ids
$client->get('images', array('id' => array(1, 2, 3)));
// create a lightbox
$client->post('images/collections', array('name' => 'Lightbox Name Here'));
Each request will return a PSR-7 response object, which you can read about on the Guzzle/PSR7 repo. The response object bodies have been decorated with a JsonSerializable interface to allow easier handling of the default API responses.
$imageResponse = $client->get('images', array('id' => array(1, 2, 3)));
if ($imageResponse->getStatusCode() != 200) {
// error handler
}
$images = $imageResponse->getBody()->jsonSerialize()['data'];
// etc
If your application is setup to handle async CURL requests, you can also make Client::getAsync
and Client::postAsync
calls, which return Guzzle Promises.
For more examples and a demo application using this client, see [LINK HERE].
Apache 2.0 © 2016-2017 Shutterstock Images, LLC