Closed ghost closed 3 years ago
J'ai le même dysfonctionnement de mon côté. Il semblerait que la classe Middleware/AuthenticationHandler ait migrée vers Subscriber/AuthenticationSubscriber
Mais si je change
use Sitra\ApiClient\Middleware\AuthenticationHandler;
pour use Sitra\ApiClient\Subscriber\AuthenticationSubscriber;
dans le fichier ApidaeSerializer.php, je me retrouve avec une nouvelle erreur
Uncaught Error: Call to undefined method GuzzleHttp\Psr7\Response::json()
Qu'en ait-il de cette issue qui date déjà un petit peu ?
Bonjour,
J'avais jeté un oeil de mon côté, mais malheureusement je ne connais pas suffisament Guzzle pour arriver à corriger ça, d'autant que ce n'est pas le seul problème posé par le commit https://github.com/apidae-tourisme/sitra-api-php/commit/7a74125d8373b40e357f6850829546b22b1efdbe
Eventuellement vous pouvez jeter un oeil ici : https://github.com/PGranger/ApidaeSso où vous trouverez une classe très simpliste pour l'authentification SSO avec un exemple très simple dans /tests/ : https://github.com/PGranger/ApidaeSso/blob/master/tests/sso.php
Ce n'est pas une classe officielle Apidae mais je m'en sers de mon côté, tout a l'air de fonctionner correctement. ça peut dépanner en attendant la correction des différents bugs sur sitra-php-api.
Ok, merci pour l'information, je vais regarder cela en attendant.
Merci beaucoup
Cela ressemble effectivement à un reste de Guzzle 5 (cf https://github.com/guzzle/guzzle/issues/1106). Remplacer l'appel ->json de la manière suivante devrait fonctionner.
$tokenResponse = GuzzleHttp\json_decode($this->client->get('/oauth/token', [
'auth' => [
$this->config['OAuthClientId'],
$this->config['OAuthSecret'],
],
'query' => [
'grant_type' => 'client_credentials',
],
'headers' => [
'accept' => 'application/json',
],
])->getBody(), true);
Plusieurs problèmes se posent, vraisemblablement liés au commit : https://github.com/apidae-tourisme/sitra-api-php/commit/7a74125d8373b40e357f6850829546b22b1efdbe
Il semble qu'il manque des classes (notamment une
Sitra\ApiClient\MiddleWare\AuthenticationHandler
) en plus de diverses erreurs de code, dont certaines ont été corrigées.Absence de la classe AuthenticationHandler
Pour commencer, l'appel à
$client->getSsoUrl()
déclenche une erreur :Fatal error: Uncaught Error: Class 'Sitra\ApiClient\AuthenticationHandler' not found in /vendor/sitra-tourisme/sitra-api-php/src/Sitra/ApiClient/Client.php:240
use Sitra\ApiClient\Middleware\AuthenticationHandler;
alors qu'il n'y a aucun dossier ou namespace MiddleWare dans ApiClient.Si on passe cette erreur en générant l'URL à la main on rencontre au minimum 2 autres erreurs.
Appel de SitraException avec une instance de CommandClientException
https://github.com/apidae-tourisme/sitra-api-php/blob/master/src/Sitra/ApiClient/Client.php#L288
Alors que le constructeur de SitraException n'autorise que les RequestException : https://github.com/apidae-tourisme/sitra-api-php/blob/master/src/Sitra/ApiClient/Exception/SitraException.php#L13
L'URL appelée renvoie une erreur 400
Voir fichier examples/sso.php pour les tests.