dev-master
9999999-devAPI client for amity
MIT
The Requires
- php >=5.3.0
- guzzle/guzzle ~3.8
- symfony/http-kernel ~2.2
Wallogit.com
2017 © Pedro Peláez
API client for amity
This package contains a Guzzle3-based API client for the amity API (v2). Use this if you want to connect your project with an amity installation and manage contacts, lists etc., (*1)
Using Composer, installing is as simple as doing, (*2)
php composer.phar require dialogue1/amity-client:~1.0
In your PHP code, all you need is to include the autoloader generated by Composer:, (*3)
require 'vendor/autoload.php'; $apiClient = dialogue1\amity\API\Client::create(...);
In general, you need four pieces of information to use the amity API:, (*4)
news.mydomain.com)gh26bb81)34hguj13fggj1kjh24j5hg45j1h3g2g42)You can either instantiate a fresh API client, which sets up all the dependencies as you need it, or use a plain Guzzle object and inject the amity API logic into it., (*5)
// This will setup a new Guzzle client and prepare it for the amity API $apiClient = dialogue1\amity\API\Client::create( 'news.mydomain.com', true, 'gh26bb81', '34hguj13fggj1kjh24j5hg45j1h3g2g42' );
The API client offers wrappers around the provided API endpoints and takes care of handling errors for you. The code to handle the resources like contacts is available in services., (*6)
$apiClient = dialogue1\amity\API\Client::create(...);
$contactService = $apiClient->getContactService();
// both $contacts and $females will be a PHP array of contacts
$contacts = $contactService->getMany();
$females = $contactService->getMany(null, null, null, null, 'f');
$newbie = $contactService->create(array(
'email' => 'some@one.org'
));
If the existing wrappers are not sufficient (e.g. if you want to use resource
embedding), you can use the requestData() helper method., (*7)
$apiClient = dialogue1\amity\API\Client::create(...);
$contacts = $apiClient->requestData('GET', '/contacts', array('embed' => 'lists'));
Alternatively, just use the RequestSigner plugin to add the signing
functionality to any Guzzle instance - in this case, you need to take care
of setting the hostname and SSL yourself:, (*8)
$httpClient = getGuzzleClientFromMyExistingFramework();
$signer = new dialogue1\amity\API\RequestSigner('<client ID>', '<api key>');
$httpClient->addSubscriber($signer);
With this setup, you can perform freeform requests as you see fit. Note that you have to take care of decoding JSON, handlings errors etc. yourself!, (*9)
// [snip]
$contacts = $httpClient->get('/contacts');
This code is licensed under the MIT license., (*10)
API client for amity
MIT