Der aktualisierte API-Client befindet sich derzeit in der v2-Zweigstelle in der Entwicklung
PHP-Client zur Verbindung mit der Teamleader-API.
Das Paket ist über Composer erhältlich:
$ composer require nascom/teamleader-api-client
Zunächst müssen Sie einen Client bereitstellen, der HTTP-Anfragen stellen kann. Es muss das HttpClientInterface
implementieren. Ein Client, der Guzzle verwendet, ist bereits im Paket enthalten. Dies erfordert die Installation von guzzlehttp/guzzle.
<?php
use Nascom TeamleaderApiClient Http HttpClient GuzzleHttpClient ;
$ guzzle = new GuzzleHttp Client ([ ' base_uri ' => ' https://www.teamleader.be/api/ ' ]);
$ httpClient = new GuzzleHttpClient ( $ guzzle );
Mit diesem HttpClient können Sie den eigentlichen API-Client instanziieren. Sie müssen auch Ihre Teamleader-API-Anmeldeinformationen angeben.
<?php
use Nascom TeamleaderApiClient Http ApiClient ApiClient ;
$ teamleaderParameters = [
' api_group ' => ' 12345 ' ,
' api_secret ' => ' XXXXXXXXXXXXXXX '
];
$ client = new ApiClient (
$ httpClient , // A client implementing HttpClientInterface.
$ teamleaderParameters // An array containing the Teamleader credentials.
);
Jeder API-Endpunkt verfügt über eine entsprechende Request-Klasse. Diese Klassen müssen an die handle()
Methode des Clients übergeben werden, die ein Response-Objekt zurückgibt. Alle verfügbaren Anfragen finden Sie hier.
So können Sie beispielsweise die Details eines Projekts abrufen:
<?php
use Nascom TeamleaderApiClient Request Project RetrieveProjectRequest ;
$ projectRequest = new RetrieveProjectRequest ( 23 );
$ response = $ client -> handle ( $ projectRequest );
echo $ response -> getData (); // Returns the Teamleader JSON response as a string.
Zusätzliche Optionen können an den ApiClient übergeben werden. Diese werden mit einigen Standardoptionen zusammengeführt und bei einer Anfrage an den HttpClient übergeben.
<?php
$ client = new ApiClient (
$ httpClient ,
$ teamleaderParameters ,
[ ' connect_timeout ' => 5.0 ] // This will override the default timeout.
);
Sie können einen benutzerdefinierten HttpClient erstellen, um Anfragen zu verarbeiten. Es muss lediglich HttpClientInterface
implementiert werden. Sie könnten beispielsweise einen Client mit Curl implementieren.
<?php
use Nascom TeamleaderApiClient Http HttpClient HttpClientInterface ;
class CurlHttpClient implements HttpClientInterface
{
public function request ( $ method , $ uri , array $ options = [])
{
$ curl = curl_init ();
curl_setopt_array ( $ curl , array (
CURLOPT_RETURNTRANSFER => 1 ,
CURLOPT_URL => ' https://www.teamleader.be/api/ ' . $ uri ,
CURLOPT_POST => 1 ,
CURLOPT_POSTFIELDS => $ options [ ' form_params ' ]
));
$ response = curl_exec ( $ curl );
curl_close ( $ curl );
return $ response ;
}
}
$ client = new ApiClient (
new CurlHttpCLient (),
$ teamleaderParameters
);