Foros del Web » Programando para Internet » PHP »

Problemas con Composer y GuzzleHttp

Estas en el tema de Problemas con Composer y GuzzleHttp en el foro de PHP en Foros del Web. Hola, necesito que me guiéis un poco con el tema de composer y guzzle. Estoy intentando crear un código para añadir donaciones en twitchalerts (una ...
  #1 (permalink)  
Antiguo 09/11/2015, 18:30
Avatar de Andres_87  
Fecha de Ingreso: noviembre-2015
Mensajes: 7
Antigüedad: 8 años, 5 meses
Puntos: 0
Problemas con Composer y GuzzleHttp

Hola, necesito que me guiéis un poco con el tema de composer y guzzle.


Estoy intentando crear un código para añadir donaciones en twitchalerts (una api de twitch) para un amigo y no hay manera de hacer funcionar el script cuando se requiere de guzzlehttp.

El script es bastante sencillo, debería de devolver 200 si esta OK o 400 si ha habido algún fallo.

Pues a mi me devuelve error 500 con el siguiente error en los logs de apache:
PHP Fatal error: Class 'GuzzleHttp\\Client' not found in public_html/twitchalerts/donacion.php on line 3 ($client = new GuzzleHttp\Client();)


Código PHP:
<?php
require_once 'vendor/autoload.php';
$client = new GuzzleHttpClient();

try {

  
//if using Guzzle 6+ change "body" to "form_params"
  
$response $client->post('https://www.twitchalerts.com/api/v1.0/donations', [
    
'body' => [
      
'access_token'  => 'ACCESS_TOKEN_HERE',
      
'name' => 'Thomas',
      
'identifier' => '[email protected]',
      
'amount' => 50,
      
'currency' => 'USD',
      
'message' => 'nice!'
    
]
  ]);

  
$result $response->json();

} catch (
Exception $e) {

  
//failed
  
$result $e->getResponse()->json();

}
Si en lugar de 'body' => pongo 'form_params' => me salta el siguiente error


PHP Fatal error: Call to undefined method GuzzleHttp\\Psr7\\Response::json() in public_html/twitchalerts/donacion.php on line 24

que corresponde a:

$result = $e->getResponse()->json();



https://twitchalerts.readme.io/docs/donations-1

La documentacion de la API es muy simple.. y no se que hacer, nunca he trabajado con COMPOSER ni con Guzzle, en google no hay ningún tipo de ejemplo de este código, solo esta la información en la api oficial.

Y estoy en el punto de que no se si he instalado mal COMPOSER + Guzzle o directamente el script que dan de ejemplo esta mal hecho.
  #2 (permalink)  
Antiguo 09/11/2015, 18:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con Composer y GuzzleHttp

Cita:
Y estoy en el punto de que no se si he instalado mal COMPOSER + Guzzle o directamente el script que dan de ejemplo esta mal hecho.
Ese es el problema, ¿cómo es que instalaste dicha dependencia?

Si jamás has usado Composer deberías leer lo siguiente: https://getcomposer.org/doc/00-intro.md

Debería existir un archivo composer.json en la raíz de tu proyecto que haga referencia a dicha dependencia.

¿Podrías explicar los pasos que seguiste?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/11/2015, 18:49
Avatar de Andres_87  
Fecha de Ingreso: noviembre-2015
Mensajes: 7
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Problemas con Composer y GuzzleHttp

Cita:
Iniciado por pateketrueke Ver Mensaje
Ese es el problema, ¿cómo es que instalaste dicha dependencia?

Si jamás has usado Composer deberías leer lo siguiente: [url]https://getcomposer.org/doc/00-intro.md[/url]

Debería existir un archivo composer.json en la raíz de tu proyecto que haga referencia a dicha dependencia.

¿Podrías explicar los pasos que seguiste?
Porque al intentar ejecutar dicho script me salia otro error diciendome que necesitaba una liberria llamada guzzle, me fui a la pagina oficial y llegue aqui:

http://guzzle3.readthedocs.org/getting-started/installation.html
y
https://github.com/guzzle/guzzle

Entre al servidor dedicado por ssh, hice CD hasta la carpeta donde estaba el PHP y ejecute los comandos que salian en los links anteriores

Estos son los archivos de la carpeta:



Contenido composer.json:

{
"require": {
"guzzlehttp/guzzle": "~6.0"
}
}

Última edición por Andres_87; 09/11/2015 a las 18:54
  #4 (permalink)  
Antiguo 09/11/2015, 20:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con Composer y GuzzleHttp

Pues parece que todo se ha instalado bien, ahora tus posible problemas puede que deriven de un mal uso de la API o que el ejemplo que te han dado esté mal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 09/11/2015, 22:14
Avatar de Andres_87  
Fecha de Ingreso: noviembre-2015
Mensajes: 7
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Problemas con Composer y GuzzleHttp

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues parece que todo se ha instalado bien, ahora tus posible problemas puede que deriven de un mal uso de la API o que el ejemplo que te han dado esté mal.
Tienes algun host con esto instalado donde puedas probar dicho codigo? Solo copia y pega el codigo, en teoria tendria que devolver 400 Bad Request,al no estar puesto el token y tal..

Si no, no se por donde tirar.
  #6 (permalink)  
Antiguo 09/11/2015, 23:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con Composer y GuzzleHttp

Pues esto me "funciona":
Código PHP:
Ver original
  1. <?php
  2.  
  3. require_once 'vendor/autoload.php';
  4. $client = new GuzzleHttp\Client();
  5.  
  6. try {
  7.  
  8.   //if using Guzzle 6+ change "body" to "form_params"
  9.   $response = $client->post('https://www.twitchalerts.com/api/v1.0/donations', [
  10.     'form_params' => [
  11.       'access_token'  => 'ACCESS_TOKEN_HERE',
  12.       'name' => 'Thomas',
  13.       'identifier' => '[email protected]',
  14.       'amount' => 50,
  15.       'currency' => 'USD',
  16.       'message' => 'nice!'
  17.     ]
  18.   ]);
  19.  
  20.   $result = $response->json();
  21.  
  22. } catch (Exception $e) {
  23.  
  24.   var_dump($e->getResponse()->getStatusCode());
  25.  
  26.   //failed
  27.   // $result = $e->getResponse()->json();
  28.  
  29. }
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 10/11/2015, 06:19
Avatar de Andres_87  
Fecha de Ingreso: noviembre-2015
Mensajes: 7
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Problemas con Composer y GuzzleHttp

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues esto me "funciona":
Código PHP:
Ver original
  1. <?php
  2.  
  3. require_once 'vendor/autoload.php';
  4. $client = new GuzzleHttp\Client();
  5.  
  6. try {
  7.  
  8.   //if using Guzzle 6+ change "body" to "form_params"
  9.   $response = $client->post('https://www.twitchalerts.com/api/v1.0/donations', [
  10.     'form_params' => [
  11.       'access_token'  => 'ACCESS_TOKEN_HERE',
  12.       'name' => 'Thomas',
  13.       'identifier' => '[email protected]',
  14.       'amount' => 50,
  15.       'currency' => 'USD',
  16.       'message' => 'nice!'
  17.     ]
  18.   ]);
  19.  
  20.   $result = $response->json();
  21.  
  22. } catch (Exception $e) {
  23.  
  24.   var_dump($e->getResponse()->getStatusCode());
  25.  
  26.   //failed
  27.   // $result = $e->getResponse()->json();
  28.  
  29. }
Pues a mi no, me salta error en la linea 24 (en el var_dump)


PHP Fatal error: Call to undefined method GuzzleHttp\\Psr7\\Response::json()


Osea que parece que instalé mal el composer, voy a mirar algún tutorial de como instalarlo correctamente, parece ser que ese es el problema.
  #8 (permalink)  
Antiguo 10/11/2015, 07:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con Composer y GuzzleHttp

¿Probaste exactamente el mismo código o sólo lo comparaste con lo que tenías?

Porque yo obtengo el mismo error si uso json() dentro de la excepción.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 10/11/2015, 07:35
Avatar de Andres_87  
Fecha de Ingreso: noviembre-2015
Mensajes: 7
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Problemas con Composer y GuzzleHttp

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Probaste exactamente el mismo código o sólo lo comparaste con lo que tenías?

Porque yo obtengo el mismo error si uso json() dentro de la excepción.
Exactamente el mismo, he copiado y he pegado de arriba a abajo.

He instalado composer en windows con xampp, para probar en local y mas de lo mismo.

Fatal error: Call to a member function getStatusCode() on null in C:\xampp\htdocs\twitch\donacion.php on line 24

En local el composer.json esta así:
{
"require": {
"guzzlehttp/guzzle": "^6.1"
}
}


Lo tienes igual? tienes otra version? algo diferente? xD
  #10 (permalink)  
Antiguo 10/11/2015, 07:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con Composer y GuzzleHttp

Exactamente la misma versión y exactamente el mismo código que te mostré.

A propósito, ese error nuevo que muestras no me pasó, ¿qué has hecho ahora?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 10/11/2015, 07:55
Avatar de Andres_87  
Fecha de Ingreso: noviembre-2015
Mensajes: 7
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Problemas con Composer y GuzzleHttp

Cita:
Iniciado por pateketrueke Ver Mensaje
Exactamente la misma versión y exactamente el mismo código que te mostré.

A propósito, ese error nuevo que muestras no me pasó, ¿qué has hecho ahora?
Nada nuevo, instalé el composer en local, probé exactamente tu código y me salta ese error en local.
Los errores de antes eran del servidor dedicado, sacados del error_log de php

No he hecho nada más.
  #12 (permalink)  
Antiguo 10/11/2015, 08:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con Composer y GuzzleHttp

Pues ya te tocará revisar una manual de Guzzle para entender cómo se usa.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 10/11/2015, 08:10
Avatar de Andres_87  
Fecha de Ingreso: noviembre-2015
Mensajes: 7
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Problemas con Composer y GuzzleHttp

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues ya te tocará revisar una manual de Guzzle para entender cómo se usa.
Pero es muy raro que a ti te funcione y a mi no.. :S

He probado por probar a ver si composer esta bien y he probado Kint
https://packagist.org/packages/raveren/kint

Y funciona bien....

  #14 (permalink)  
Antiguo 10/11/2015, 08:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con Composer y GuzzleHttp

Mira, lo que me "ha funcionado" no significa nada porque tampoco sé usar dicha librería, sólo hice debug un poco hasta obtener un resultado: statusCode 400.

Sólo es cuestión de que leas cómo se usa bien dicha librería para que puedas interpretar los resultados, que casi estoy seguro, todo está en orden.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:13.