• 0

Question

Estimados, estoy armando un script PHP de uso personal para armar reportes de mi cuenta en MercadoLibre.

He buscado bastante en este foro, web en general, y developers.mercadolibre.com, sin embargo hay información que me está faltando o no estoy dando en el clavo.

 

En primer lugar, comentar que he visto que muchos hablad de "chequear la documentación" y sinceramente me parece muy escueta en cuanto a la implementación, hay mucho sobre generalidades pero no casos concretos de cómo crear instancias de los objetos en PHP, por ejemplo.

 

En Github, hay muy pocos ejemplos, y no me están funcionando, de ahí a que tal vez algo no esté haciendo correctamente.

 

Yendo a un caso concreto:

 

Tengo el el app_id, el secret_key, e incluso pude obtener manualmente (con los links que por ahí comentan) un token y un code.

Pero voy por parte para que me puedan entender...

$APP_ID="aaaaaaaa";
$SECRET_KEY="bbbbbbbbb";

En https://github.com/mercadolibre/php-sdk/blob/master/examples/example_get.php tengo el siguiente ejemplo:

$meli=new Meli($APP_ID,$SECRET_KEY);

En otros ejemplos, veo que se pasan otros dos parámetros: token, y refresh_token. Como dije anteriormente el token sé como obtenerlo manualmente (para pruebas manuales) pero el refresh_token no sé dónde se obtiene ni para qué es.

Sigo...

 

Creo una variable $params que es un array con los parámetros, en este ejemplo se pasa vacío, aunque he visto otros donde pasan por ejemplo el token. Sigo el ejemplo y lo dejo vacío.

$params=array();

Ahora viene la parte donde hago la consulta que quiero, usando la función get del objeto creado, de la clase Meli, pasando por parámetro la consulta (y de éstas consultas sí hay mucha documentación en developers.mercadolibre.com), y como segundo parámetro paso el array $params.

$result=$meli->get('/sites/MLU',$params);

Hasta acá pinta todo muy sencillo, nada del otro mundo. Se supone que si hago un print_r() de $result vería lo que me devuelve la consulta (así como cuando hago la consulta manualmente: https://api.mercadolibre.com/sites/MLU), sin embargo me devuelve lo siguiente:

Array ( [body] => [httpCode] => 0 )

Por ahí leí en Github que alguien publica cómo solucionar lo del httpCode=0, y muestra como modificar la clase Meli, sin embargo yo estoy utilizando la última versión de dicha clase.

 

No me queda claro qué está faltando, no encuentro documentación sobre esta parte de la implementación. Como dije antes, en el sitio oficial de ML muestran muy claramente las consultas que se pueden ejecutar, pero acá estoy en otro punto, uno previo a eso.

 

Todo lo estoy ejecutando de un servidor local de pruebas.

Queda descartado que ya tengo creada la APP, que es de donde obtuve el secret_key y el app_id.

 

Agradezco si me pueden dar una mano o guía de como seguir (o empezar) con este tema.

 

 

 

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

A documentação mudou no início deste mês, então os posts daqui têm apontamentos para páginas que não existem mais.

E também pode não ter mais na documentação um item de acordo.

 

Como estou alcoolizado não consegui entender sua pergunta. Mas as desculpas eu dei :)

Share this post


Link to post
Share on other sites
  • 0
On 27-04-2016 at 10:58 AM, Leandro Bertalot said:

el problema esta en la configuración de como maneja REST php, hay muchos que tienen este problema usando XAMPP, no es sólo del meli.php sino de como configuras CURL_ para trabajar con REST fijate un par de estas soluciones https://github.com/mercadolibre/php-sdk/issues/32

Hola, tengo el mismo problema con el SDK PHP.

Estoy trabajando con wamp e intenté hacer los cambios sugeridos en el issues 32 pero nada funciona. ¿alguna otra solución?

Share this post


Link to post
Share on other sites
  • 0

Para que funcione el example_get.php se debe entrar al meli.php y editar lo siguiente:

 

public static $CURL_OPTS = array(
        CURLOPT_USERAGENT => "MELI-PHP-SDK-1.1.0", 
        CURLOPT_SSL_VERIFYPEER => true,
        CURLOPT_CONNECTTIMEOUT => 10, 
        CURLOPT_RETURNTRANSFER => 1, 
        CURLOPT_TIMEOUT => 60
    );

 

Se debe cambiar el "CURLOPT_SSL_VERIFYPEER => true" por "CURLOPT_SSL_VERIFYPEER => false" (sin las comillas ").

 

Esto como dije en un inicio funciona sin problemas para el example_get.php pero para el example_login.php pues me sigue dando problemas

 

 

image.png.c42598763e6aef3a86d741e5580ebaa9.png

 

 

 

Alguna solución al respecto ???  ya que solamente he editado configApp.php con mi appId, secretKey, redirectURI y el siteId.

 

 

 

 

Share this post


Link to post
Share on other sites
  • 0

Bueno, ya que nadie respondió, pues me respondo solo.

 

Para que example_login.php del SDK PHP funcione, se necesita:

 

1.- Un servidor con SSL, olvidense que de forma local (con su propio pc, localhost), van a poder hacer algo con SDK PHP. Si quieren trabajar de forma local pues creen una propia con Curl.

2.- En configApp.php deben quitar los getenv(), solo dejar las comillas, por ejemplo:

De esta forma no ->  $appId = getenv('App_ID');
De esta forma sí ->   $appId = 'App_ID';

3.- En configApp.php, la variable $redirectURI deben escribirla tal cual como lo hicieron en el administrador de aplicaciones (recuerden que debe ser servidor con SSL).

4.- Cuando hagan include o require de configApp.php en cualquier archivo, deben nuevamente crear la variable $redirectURI pero agregando el enlace del archivo que están utilizando, por ejemplo:

en configApp.php deben poner

$redirectURI = 'https://miservidor-o-IPdeservidor/';

 

En example_login.php deben poner:

 

require '../Meli/meli.php';
require '../configApp.php';

$redirectURI = $redirectURI."example/example_login.php";

Con esto debería funcionar.

5.- Los videos y el curso son una verdadera perdida de tiempo, si quieres el papelito que dice que estas certificado pues bien por ti, pero creeme que no se aprende nada. Desde http://developers.mercadolibre.com/es/  se aprende mucho más que los videos, pero ojo y mucho ojo, existen cosas que te explican en algun lado de este sitio de cierta forma, luego jamas te resulta el ejemplo y si sigues buscando pues en otra parte del sitio te explican lo mismo pero de otra. Por ejemplo como publicar una descripción de articulo, en cierto lado te dicen y aseguran que el json debe ser:

 

description : 'Mi descripción',

 

Jamas pude publicar una descripción, luego de dos semanas, descubrí por otra parte que la forma correcta de publicar era:

'description' : {
            'plain_text' : 'Mi descripción'
        },

 

Como podrán ver, ni siquiera tienen bien la documentación en el sitio. Quizás dirán que es un detalle, pero no fue lo único donde encontré inconsistencias.

 

Si esperan que alguien que trabaje en mercado libre les responda o les mande un correo pues no pierdan su tiempo con ilusiones, lean foros, lean la documentación, experimenten y prueben su suerte. Créanme en esto, estoy haciendo una implementación a pedido de una empresa, me pusieron en contacto con un técnico de mercado libre, con una ejecutiva y no tienen ni idea de que pasa con su API, llevo casi un mes esperando que me respondan correos, esta semana tuve reunion con ellos y me trataron de responder cosas que yo ya había probado y no resultaron, es más, yo les di la solución que encontré por este foro y otros del ciber espacio.

 

Frente a eso amigos pues que les puedo decir, la idea de la API es buena, pero le falta mucho aún, esto se los digo comparando tan solo un misero plugin de wordpress (woocommerce), con esta API y créanme que esta ultima esta en pañales, enredado y pesimo soporte. Woocommerce, siendo solamente un plugins, es millones de veces más completo, mejor documentación, mejor soporte y gratis.

 

Bueno, suerte a todos en esta batalla, saludos.

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now