GARO4525319

Members
  • Content Count

    24
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by GARO4525319

  1. Puede que el error sea que usas: curl_setopt( $ch , CURLOPT_POSTFIELDS , http_build_query( $dataMeli ) ) ; Pasale solo el $dataMeli a ver si te funca. Y sino, usa la SDK parar php que te hace eso mas facil: https://github.com/mercadolibre/php-sdk De paso te comento que ese sdk usa estas opts por defecto para el curl: public static $CURL_OPTS = array( CURLOPT_USERAGENT => "MELI-PHP-SDK-2.0.0", CURLOPT_SSL_VERIFYPEER => true, CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_RETURNTRANSFER => 1, CURLOPT_TIMEOUT => 60 ); El CURLOPT_SSL_VERIFYPEER yo localmente lo testeo en false, sino no funciona obiamente.
  2. Si, es un error muy común, eso de "titilar" es super conocido en todos los lenguajes de programación. No probaste dándole una patada a la maquinita?? Ja ajaj, no en serio, vamos, si no es clara la duda/pregunta, difícil se te responda algo.
  3. No se como estas gestionando la $_SESSION, supongo que estas probando con los php de ejemplo del SDKPHP.... pero eso es solo un ejemplo, si la data no la guardas en una, por ej, base de datos para que cuando cargues la pagina de nuevo no necesites nada, ya que vas a tener el token y refresh guardados, idem expire... ahi vas a poder crear un Meli que si te va a funcionar. Asi como tenes el codigo, no va a funcionar. Fijate, hace un print_r($meli) abajo del todo y te vas a dar cuenta lo que digo.
  4. Y $itemId que le estas pasando? Ahi deberia ir el customer ID de la aplicación creada. Por eso te preguntaba si no estaras pasando mal ese ID. Si me baso en el nombre de la variable, es incorrecto que sea $itemID, ya que ahi no va un ID de un item, sino el ID del usuario. Por cierto, esto lo estas testenado en donde? Si es localmente deberias desactivar el SSl en las opciones del cURL de Meli. Idem si es online en un server sin SSL.
  5. Juvian, bueno no se si eso de que no soporta a "order" es asi, que no este documentado no significa que no este. Es mas, si esta, porque justamente ese listado de IDS, lo saco antes de un GET users/[sellerID]/items/search?order=start_time_desc Y ahi si funciona y me devuelve el result usando start_time_desc para ordenarlos. No coincido con que no debería ordenarlos, mas aún cuando ni siquiera respeta el orden de los IDS pasados. A ver, si yo paso ids=1111111, 222222, 333333, ¿porque el result de eso los randomiza? Como mínimo esperaría que me respetara ese orden de IDS separados por coma. No? Pero, resulta que esto del random afecta otros GET de la API, por ej: http://api.mercadolibre.com/sites/ Fijate, hace random, nunca el result viene igual. Si claro que yo puedo volver a re-ordenar esos results en base al ID o al NAME, pero es sinceramente ridículo que tenga que hacer eso.
  6. Buenas, a ver si alguien tiene alguna idea de que esta pasando, vayan aca: https://api.mercadolibre.com/sites/ El listado de paises sale desordenado a cada refresh. Nunca sale ordenado. Lo logico seria que fuera ordenado o por el ID o por el Name, pero nada de eso, siempre random. Esto mismo del random pasa en otros results de la API que no deberia pasar. Entonces ¿que esta pasando? Se hace muy dificil desarrollar asi las cosas.
  7. Si y no parece haber nadie siquiera para responder algo como "si estamos teniendo problemas en tal lado, o estmos trabajando en x cosa", ahora mismo estoy teniendo el "lio" que esto https://api.mercadolibre.com/sites/ me devuelve los sitios en orden random a cada refresh. O sea que si yo quiero usar esa data para por ej. crear un select con la lista de paises, MLA, MLB, etc... siempre ese select va estar ordenado en random, y cuando el cliente me pregunte porque pasa eso, ¿que le digo? Es insólito. Y si claro que puedo agarrar ese result y volver a re-ordenarlo, pero no tiene sentido alguno. Y esto del random pasa en otros lados de otros results de la API, y ya pregunte en dos posteos diferentes del foro, y nada, ahi esta la pregunta esperando que alguien diga algo. MIra esto: http://localhost.rgdesign.org/ (por cierto, que usar un sub-dominio que sea "localhost", me deja hacer testeos sin SSL, te paso el pique, no hay documentacion al respecto, en teoría esto de testear online sin HTTPS, no sería viable, pero ahi ves que si) Y ahi pasa lo mismo, cada refresh, orden random. Y no deberia, no hay nada que yo haya indicado que los ordenen asi, de hecho ese listado sale de un listado de IDS, separados por coma ordenados segun fecha de publicacion, pero por algun motivo extraño, la API los devuelve randomicamente. Lo mismo, ¿que le explico al cliente? ¿que no puedo ordenar las publicaciones como el quiere sino como la API se le canta????!! Ni me quiero imaginar cuando intente usar la API para hacer otras cosas bastante mas complejas!! Yo daba por descartado que siendo un subdominio de mercadolibre, el foro iba a estar visitado regularmente por desarrolladores inside ML, pero no parece que sea asi. Solo he visto un moderador y ni siquiera se si trabaja en ML mismo. Lo peor es que no hay otro lugar donde consultar o compartir información y como la API no es opensource, ni idea que pasa por atrás como para investigar. Ni que hablar que hay pila de cosas que no están documentadas directamente.
  8. Esta medio muerto este foro, no? no logro entender el propósito del mismo, nadie responde nada. Desde que lo uso, todas las consultas sobre el funcionamiento de la API que he hecho, nada, he tenido que buscarle la vuelta por otro lado, incluso con cosas que no están documentadas. Por mi esta bien, yo me doy maña, pero ¿para que es el foro entonces?
  9. Que es $itemId? Estas usando el ID del usuario? o sea el Cust_id (customer ID)? No estarás confundiendo esa variable? En los $params, estas pasando el access_token, verdad? Cualquiera de esos datos erróneos, te puede dar un 403.
  10. A ver, ya posteé esto hace rato y solo una persona me respondió y no sirvió de mucho, hagan ustedes la prueba, use items/?ids= para obtener digamos, 4 o 5 publicaciones, asi sin mas, los devuelve ordenados random siempre. Ah no? miren: https://api.mercadolibre.com/items?ids=MLU464505819,MLU464356236,MLU464356996,MLU464471304&order=start_time_desc Recargen la pagina dos, tres, cuatro veces... No hay manera, otro ejemplo: https://api.mercadolibre.com/items?ids=MLU457021352,MLU451343845,MLU443980491,MLU446714658&order=price ¿Alquien puede decir algo al respecto? A ver, es bien simple, así sin "order", también pasa: https://api.mercadolibre.com/items?ids=MLU457021352,MLU451343845,MLU443980491,MLU446714658 ¿Como cornos no me esta tirando los resultados respetando el orden de los ids así tal cual los estoy poniendo en la url? No tiene sentido. Eso esta haciendo un random antes de tirar el result. O sea, esta mal.
  11. Aja, o sea que no sabes como capturar los parámetros de una URL vía javascript. Te repito, no tiene entonces nada que ver con la API, no es el lugar donde preguntar, ni tiene sentido alguno, algo que es básico de js ademas.
  12. Me hace lo mismo, no toma el orden de los IDS, me los ordena al azar siempre. Pero como digo antes, esto solo pasa luego de pasar la URL por Meli, si voy directo a la URL los ordena como tiene que ser. Edito 1: si me hace lo mismo si voy directo por URL, los ordena al azar en cada refresh. El SDK de Meli que estoy usando es tal cual el que esta en github: https://github.com/mercadolibre/php-sdk Solo cambie el CURLOPT_SSL_VERIFYPEER a false para hacer test locales. No creo que eso tenga algo que ver de todos modos. Voy a probar hacer algun CURL sin el meli a ver que me tira.... 😞 Edito 2: Ya probé sin meli, es lo mismo, pasa ya a nivel de respuesta desde https://api.mercadolibre.com/items?ids= directamente.
  13. Ah por cierto, estoy usando el SDK Meli y es cuando lo uso para hacer el ->get que me pasa esto. Si voy directo a la url generada, tipo: https://api.mercadolibre.com/items?ids=MLUXXXXXX001,MLUXXXXXX002,MLUXXXXXX003?access_token=APP_XXX-2004166195814816-XXXXXX-2c6ca846ff51bce9104979d7fbadd59c-XXXXXXXX Ahi si me respeta el orden de los IDS pasados. Pero si eso mismo lo hago por Meli, me pasa lo que digo antes. Y lo único que estoy haciendo es: $url = '/items?ids='.$ids.''; $items = $meli->get($url,$params); Donde $params lleva el $access_token. Ahora si que no entiendo porque la URL si me ordena bien y si lo hago por Meli no, deberia ser lo mismo o no?
  14. Buenas, tengo un problema y no le encuentro la vuelta. Estoy laburando en PHP y justo es algo que no esta documentado en los recursos de la API, le comento el caso: 1 - Hago un GET a '/users/'.$seller_id.'/items/search' y le paso el param "order" como "start_time_desc". Hasta ahi ok, si levanto los $results, me tira un array con los IDS de las publicaciones ordenadas segun start_time_desc. (ahora explico otra cosa que no logro entender respecto a "order") 2 - Con ese array e IDS, lo paso a un string separado por commas ($ids) para usar con un GET /items?ids='.$ids.'. Con eso obtengo los datos de cada publicacion. Hasta ahi todo fenomeno, pero el segundo GET /items?ids, no me esta respetando el orden.Me los tira al azar y ya probe volver a pasar el parametro "order" en el items?ids, pero nada. Creí que era evidente que el orden del result de esa url iba a ser el mismísimo orden de esos IDS pasados... pero nop!! Lo otro que digo ahi que no logro entender del "order" es que también probé pasando "orders" (la S), y también funciona. Me refiero al primer GET /users.../items/search. Y no encontre nada documentado puntual sobre como usar "order" u "orders" en los parametros. Tonces, ¿como logro hacer que me respete el orden de los IDS pasados en el GET /items?ids ? A ver, perfectamente podría agarrar ese array de IDS, y hacer un foreach y a cada ítem hacer un GET por separado para solo ese ID, pero la idea es no hacer varios GET, sino uno solo para todo. supongo ademas que para eso existe /items?ids.
  15. Bueno, preocupate por ahora solo de la parte de Redirect URI * Claro que tenes que tener un servidor web para usar esto, sino donde? La redirect_uri es justamente donde vas a autorizar cuando pidas el token, te va a devolver una url a ese mismo redirect_uri, con un parametro de "code", con ese code, y segun la sdk que uses, o el lenguaje que uses, vas a poder obtener el token y recien ahi vas a poder interactuar con la api a nivel privado. Pero para eso vas a necesitar varias otras cosas, el token dura 5 horas y media aprox, por eso hay un refresh_token. Seguro que leiste toda la documentación por lo menos todo lo básico? Lo de hacer pruebas, esta documentado, pero primero tenes que entender como es el proceso de la autentificación.
  16. Si pero: - capturar parámetros de una URL - guardarlos en una variable - cerrar la ventana Son todas cosas que no tienen nada que ver con la API. ¿Cual es exactamente ese "tengo problemas con la autorizan" ?
  17. no puedo testear usando MX, pero aca: https://developers.mercadolibre.com.uy/es_ar/autenticacion-y-autorizacion/#obtener_token funciona ok.
  18. Si bueno eso de que todo funciona en producción ya lo tenía, pero claro, para otras cosas estaba acostumbrado a si tener un sandbox de testeo. En fin, voy a ver si invento algo con un json + ajax para re-cargar x cantidad de publicaciones y otros seteos de la cuenta test para usar como vendedor y no tener que hacerlo todo de nuevo cada vez que se expire el que este usando para testear justamente. Igual esta raro eso de testear en prod, por ej. hay pila de productos que si pones a buscar "Item De Prueba - Por Favor, No Ofertar"... salen visibles públicamente. Algunos son los que hice de testeo estos días, pero hay otros de, calculo otros que están probando cosas similares. Digo, que eso este publico no me cierra del todo, pero supongo que también si no fuera así no se podrían hacer compras con usuarios test comprador... je. Gracias de todos modos.
  19. Ta pero tener conocimiento hasta donde? para empezar tenes que ver como es el proceso del autorización, tenes que crear una app, con eso generar un token, el token guardarlo tipo en una base de datos y refrescarlo cuando expire, y usar ese token para hacer los GET o POST que necesites. Yo no uso java, pero con los SDK de js o con php mas o menos esa es la idea genérica y básica. O sea esto: https://developers.mercadolibre.com.uy/es_ar/client-side#flujo Lo demas, una vez empieces a tener andando los GET y POST, y veas que tipo de info (array y object) te trae cada petición, te vas a dar a ir dando cuenta que necesitas en cada caso. Por ej. para listar los productos de x usuario, primero tenes que saber el ID de ese usuario, para eso usas un GET si no lo tenes o lo conseguis directo de la cuenta del usuario que hizo la APP, con ese ID, haces otro GET de las publicaciones, y si ademas queres saber el Nombre y Enlace a la categoria de cada publicación, tenes que hacer otro GET al que le pasas el ID de esa categoria. Y todo así. Te sirve como para saber por donde empezar?
  20. Buenas, tengo una duda, sobre todo pensando en poder mostrar el desarrollo de una app usando el sdk en php. Ya he hecho las dos cosas, he creado usuarios test, una app, publicaciones desde ML y externalmente con la API, y lo mismo con un usuario real, pero creando publicaciones "test", como sugiere la ayuda de nombrarlos/title tipo "Item De Prueba - Por Favor, No Ofertar --kc:off". Hasta ahi todo bien, pero algunas preguntas/comentarios: - Las publicaciones sean hechas con el usuario test o sean hechas con un usuario real, aparecen en las busquedas de ML. Esto esta bien al ser publ. de testeo? - Si yo quiero armar una tienda de "test", y para evitar que la data se borre cuando el usuario test sea borrado al x tiempo (que no se cual es), ¿esta bien igual usar un usuario real para cargar publicaciones de testeo? Para que se entiendan mis dudas, supongamos que creo un plugin/app para correr en un sitio web online en el que quiero mostrar las funcionalidades, sobre todo mostrar las publicaciones desde la API de ML. Bueno, si lo hago con un usuario test, cuando se llegue a su vencimiento automatico, la app y todas las publicaciones van a desaparecer y eso se vería reflejado en el sitio web donde lo este implementando. Se me ocurre entonces, ¿porque no usar un usuario real y asi evitar que el mismo se auto-borre al x tiempo? Usuario real me refiero a uno creado normalmente, no usando la api "/users/test_user". Si ya se que los productos igual tiene fecha de vencimiento, pero supongo que los podria ver mas tiempo online en comparación con el tiempo que dura un usuario test, o no? Otra cosa que si bien o tiene que ver, un poco si: ¿es normal que un token al vencer igual me siga funcionando? Y me paso dos veces que el time actual es mayor al seteado en expires_in, y no pasa nada, las llamadas a la API para esa app, usando el token "vencido", siguen funcionando. Esto lo se porque si bien hice un cronjob para re-cargara los tokens via Meli y guardarlos en la base de datos, le deje la opcion de hacerlo manual justamente para probar que pasa cuando el token se vence y ta, como que me marea ver que sigue funcionando. La verdad ahora mismo no recuerdo si esto pasaba cuando hice la APP con el user real, ya que ahora hace rato que estoy usando uno de testeo. Eso ultimo, el problema era que no estaba guardando/comparando la data guardada con time() vs expires_in ..... un lio ahi con current time y la zona horaria que la tenia mal configurada. Pero ya está, ahora si claro, vence el token y no funca nada, pero ya comprobé asi que me funca bien cuando lo dejo en manual, me avisa "token inválido, vuelva a autenticar oAuth..etc" Che, esta medio muerto este foro o que onda? Igual yo pregunto cosas y me las auto-respondo jajaj, a mi me sirve, se te aclara la mente entre tanto código y testeos y que me logeo y que limpio las cookies.... pah, se me ocurrio otra duda, pero mejor ni pregunto total nadie responde ajajajajaja. Gracias.
  21. Buenas, aca probando la API, estoy listando productos publicados de testeo. En si no tengo ningún problema, pero no se si hay alguna manera mas "corta" de hacerlo, me explico, lo que estoy haciendo es: 1 - Usando GET /users/me obtengo el "seller_id" 2 - Usando GET /users/{seller_id}/items/search, obtengo los IDS de cada publicacion. 3 - Usando GET /items?ids={IDS de items separados por coma}, obtengo ahora si el array de objetos con la data de cada publicación. Entonces eso, ¿no hay una manera mas facil de hacer eso sin tener que usar tres veces el GET? Por lo pronto lo que estoy haciendo para evitar uno de los GET, es guardar la data de "seller_id" en la base de datos al mismo tiempo que guardo el token y etc... Me gustaría poder hacer un solo GET para obtener lo mismo y no veo nada de eso en la documentación. De hecho lo de /items?ids no esta documentado. Gracias.
  22. Bueno, otro update 6 hrs despues de mi primer post.. ahora parece que funciona ok. Voy a seguir probando a ver si pasa de nuevo en algun momento. Alguien puede comentar algo al respecto a ver si les ha pasado algo similar que por x horas la api no funcione bien o directamente el sitio de ML no funcione bien? Imaginense que como desarrollador, es un cacho raro meter horas y dias y semanas de laburo sobre un codigo y no saber que tan confiable es usarlo. Si algo asi me pasara en un sitio de un cliente... mmm, me quiero matar.
  23. Por cierto, aclaro que las publiciones de testeo estan en la categoria Productos Y Otros, 1 unidad, etc... todo segun como describe la ayuda para crear testeos de publicaciones. Como dato extra les comento que acabo de publicar una tercera publicacion de testeo y sigue pasando lo mismo, no es como estoy usando la API, es otra cosa ya que sucede directamente aca: https://www.mercadolibre.com.uy/publicaciones/listado?filters=ACTIVE#label=active (si me imagino igual que ahi tambien se usa la API justamente, pero no lo se) Lo que si siempre pasa es que por momentos solo queda publicada la primer publicacion de testeo que hice, y randomicamente desaparecen del listado las otras dos. ¿Es esto algo que ya se sabe que pasa por ser publicaciones de testeo?
  24. Hola, estoy testeando usar la API para obtener listados de las publicaciones, todo marcha bien, pero esta pasando algo extraño. Ahora mismo tengo dos publicaciones de testeo que las titule "Item De Prueba - Por Favor, No Ofertar" y "Item De Prueba 2 - Por Favor, No Ofertar". Intentando loopear (en php) el listado usando Meli (ya tengo resuelto todo lo referente a el oAuth) a veces obtengo las dos publicaciones y a veces solo una. Estaba usando por ej: GET '/items?ids='.$ids Donde $ids es un string separado por comas que previamente filtre usando /users/{Cust_id}/items/search... en fin, que eso funciona bien, salvo lo que detallo, a veces me muestra los dos resultados y a veces solo uno, que es ademas la primer publicacion que habia hecho de testeo. Pero pero pero, resulta que si voy a mi cuenta en ML, listado de publicaciones, ej: https://www.mercadolibre.com.uy/publicaciones/listado?filters=ACTIVE&search=&sort=&page=1 Ahi me pasa lo mismo, si refresco la pagina, a veces me muestra las dos publicaciones y a veces solo una. O sea, que no es un tema de la API sino que hay algún motivo por el cual la segunda publicacion se borra y se vuelve a publicar randomicamente, o que puede ser? Por ej, mientras escribo probé refrescar la pagina de publicaciones/listado varias veces, tres veces seguidas me mostro solo una publicaion, luego dos veces me mostro 2, luego 1 vez me mostro 1, luego .... y todo asi. Probé cambiar el titulo de las publicaciones a otra cosa, cambiar las categorias y otros atributos.. pero nada, es al azar que una publicacion desaparece de a ratos. Alguna idea?
  25. Hola, hice y tengo todo configurado según lo descrito en este video de esta url: https://developers.mercadolibre.com.uy/es_ar/php-es/ Tengo mi repositorio clonado en : https://github.com/rg-/php-sdk-master Con los cambios mínimos en el configApp.php segun mi app id, secret key, etc. y como el usuario con el que hice la APP es en .UY, cambie a MLU, lo mismo hice con el array para el $item de ejemplo, cambie curreny_id a UYU y category_id a MLU5725, solo por si las dudas de que no me estuviera funcionando por no ser el ejemplo por defecto en el mismo pais del usuario. El unico cambio que hice en el index.php es meter algunos print_r para ver los resultados de $_SESSION y $meli. A la hora de Autenticar, sale todo ok, me genera el ?code para la url y el respectivo token y el refresh token, pero cuando le doy a Publicar el post de testeo, el token cambia, y el Meli no lo levanta, dandome el tipico 403 access_token.invalid. Pasa lo mismo si solo recargo la pagina, el token y refresh de Meli desaparecen. Y claro, obviamente cuando hago el post la pagina se recarga y justamente pasa que o el token que usa ya no es el mismo, o directamente no esta. Por lo que entiendo deberia guardar el token generado al autenticar en algun lado (ddbb) para usarlo al hacer el post, pero eso no es lo que se ve en el video. Ahi simplemente luego de autenticar se hace el post y funciona. Pues bien, a mi no me funciona. Si tengo seteado offline_access en la APP creada. Probé tambien cambiando CURLOPT_SSL_VERIFYPEER a false en meli.php, pero no veo que cambie nada. Ahi tengo otras dudas, ¿porque el $meli esta definido dos veces, una para la autentificacion y otra vez mas para hacer el post? Es decir, en el mismo php aparece dos veces $meli = new Meli($appId, $secretKey); Una para usar en el boton de Autentificar y la otra en el de Publicar, pero haciendo un print_r de eso, que se supone es lo mismo, no me devuelve lo mismo, en la segunda llamada me faltan token y refresh_token. No se si hay algo que no esta funcionando porque como digo, primero de nada he intentado usar el sdk tal cual viene, sin tocar nada salvo los datos puntuales de mi APP. Por ahi he leido, en varios lados, que el token dura 6 hrs pero lo que yo veo es que cada vez que refresco la pagina, el token cambia y no es el mismo que veo cuando genero el token via developers.mercadolibre tampoco. Ya llevo dos dias probando por todos lados y no se si es que hay algo funcionando mal o le estoy errando en algun lado del codigo, cosa que no me cierra porque lo estoy usando tal cual esta en github, solo clone el repositorio y use ese template para hacer el deploy en heroku, usando https://heroku.com/deploy?template=https://github.com/rg-/php-sdk-master Entonces, ¿porque en el video si funciona y a mi no? Y si, ya revise todo, lei la documentacion, busque problemas similares en los foros y nada, hago todo bien, pero no funciona el "post" para crear productos porque el token me figura como invalido o directamente no figura, asi por ej.: Cuando hago la autentificacion y recarga la pagina veo esto: Meli Object ( [client_id:protected] => 3339525318376734 [client_secret:protected] => IfIsSecretNotIsToShow [redirect_uri:protected] => https://rg-php-sdk-master.herokuapp.com [access_token:protected] => APP_USR-XXXXXXXXXXXXXX-062123-d013bdba479535858358309ea242e161-XXXXXXXXX [refresh_token:protected] => TG-TheSameThatSecret-XXXXXXXXX ) Si recargo la pagina o hago el Publish Item (post items), ya no esta mas el token, asi: Meli Object ( [client_id:protected] => 333952531999999 [client_secret:protected] => QpQYWBeQM7QLWc16WwjQZ0Gd11Hc5He5 [redirect_uri:protected] => [access_token:protected] => [refresh_token:protected] => ) Y obviamente al darle Publish no va a funcionar. Hasta ahi entiendo que no funcione, lo que no entiendo es porque en el video si funciona cuando estoy haciendo exactamente lo mismo. Lo que tampoco entiendo es porque si falla el token, igual luego de darle Publish me muestra esto (sin el link al producto que nunca fue creado obviamente): Success! Your test item was listed! Go to the permalink to see how it's looking in our site. Alguien me puede guiar un poco a ver si es que estoy haciendo algo mal o es que realmente no esta funcionando algo en la API? Me han pasado otras cosas raras, por ej. en algunos testeos, mismo codigo, todo igual, se me queda como enganchado a la autentificación, o sea no me aparece el boton de Autenticar por mas que recargo la pagina, incluso cambiando de navegador. Esto dura un rato y luego todo vuelve a funcionar como lo describo. Aclaro que incluso antes de clonar el repositorio, hice el deploy a heroku directo del sdk original, o sea: https://heroku.com/deploy?template=https://github.com/mercadolibre/php-sdk usando los datos de mi APP, pero nada, fue exactamente lo mismo. Desde ya muchas gracias.