J’ai déjà utilisé en forme de tableau, j’ai ça comme retour
result = {string[2]} ["invalid_request", "Invalid grant_t..."]
error = "invalid_request"
error_description = "Invalid grant_type parameter or parameter missing"
Car les data ce n’est pas du JSON, j’envoie une chaîne comme indiqué dans la doc de CURL car http.com.php utilise CURL c’est du Content-Type: application/x-www-form-urlencoded
pcq c’est ca qui est pas clair, tu n’as pas spécifié ceci
à guzzle, en tout cas pas dans le bout de code que tu nous montres
et ton api elle supporte que des form params? c’est pas vmt fait pour être utilisé en api alors?
un end point oauth2/token en principe ca supporte un payload json
btw, tu ne peux pas utiliser autre chose qu’un grant_type password? c’est pas super… ca force à utiliser le password du user; c’est pas le but de oauth2
il existe des lib qui gère oauth pour toi sinon au lieu de gérer les messages toi même, par exemple league/oauth2-client justement
Bonjour,
Le problème c’est que je ne saisis pas bien sous quelle forme tu veux envoyer $data.
Si c’est application/json alors ce doit être une array exactement comme celle que tu as mis dans ton exemple Guzzle (pas celle de ton essai avec http_com) et tu dois faire
$request_http->setPost(json_encode($data));
Mais si c’est application/x-www-form-urlencoded ce ne dois pas du tout être un array mais une string or toi dans ton exemple tu as mis des crochets autour de ta string donc çà ne peut pas marcher. De plus pour construire la chaine tu peux utiliser http_build_query c’est plus pratique.
Je viens de voir d’ou vient le soucis en gros c’est l’encodage que fait http_build_query par exemple il remplace les @ par %40 alors que si je le balance directement en string @ reste un @ donc ça ne fonctionne pas