El cliente API actualizado se encuentra actualmente en desarrollo en la sucursal v2.
Cliente PHP para conectarse a la API de Teamleader.
El paquete está disponible a través del compositor:
$ composer require nascom/teamleader-api-client
Primero, deberá proporcionar un cliente que pueda realizar solicitudes HTTP. Tiene que implementar HttpClientInterface
. Un cliente que usa Guzzle ya está disponible en el paquete. Esto requiere instalar guzzlehttp/guzzle.
<?php
use Nascom TeamleaderApiClient Http HttpClient GuzzleHttpClient ;
$ guzzle = new GuzzleHttp Client ([ ' base_uri ' => ' https://www.teamleader.be/api/ ' ]);
$ httpClient = new GuzzleHttpClient ( $ guzzle );
Puede utilizar este HttpClient para crear una instancia del cliente API real. También deberás proporcionar tus credenciales de la API de Teamleader.
<?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.
);
Cada punto final de API tiene una clase de solicitud correspondiente. Estas clases deben pasarse al método handle()
del cliente, que devolverá un objeto Respuesta. Todas las solicitudes disponibles se pueden encontrar aquí.
Por ejemplo, así es como puedes obtener los detalles de un proyecto:
<?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.
Se pueden pasar opciones adicionales a ApiClient. Estas se combinarán con algunas opciones predeterminadas y se pasarán a HttpClient al realizar una solicitud.
<?php
$ client = new ApiClient (
$ httpClient ,
$ teamleaderParameters ,
[ ' connect_timeout ' => 5.0 ] // This will override the default timeout.
);
Puede crear un HttpClient personalizado para manejar solicitudes. Todo lo que tiene que hacer es implementar HttpClientInterface
. Podrías, por ejemplo, implementar un cliente usando curl.
<?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
);