Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

280
Vistas
Obtener la tarjeta superior de una lista de Trello en Javascript

Estoy tratando de obtener la tarjeta superior de una lista usando Javascript. Vi otra publicación sobre esto, pero el código estaba desactualizado/ya no funcionaba.

Tengo una lista de Trello, llamada "Vuelos" y agradecería si alguien pudiera ayudarme con esto. Simplemente, quiero obtener la tarjeta superior en una lista de Trello, junto con los campos personalizados de la tarjeta.

Hasta ahora, he probado el siguiente código:

 // Getting all lists from a certain board. fetch(`https://api.trello.com/1/boards/0Ph2WHXQ/lists?key=5fe33d73bded56ada14decf701da0203&token=e353cb19fabc8dfbea36e1b824a92ff0b358860b1de2d11c745f6e8321edfc09`, { method: 'GET', }).then(response => { console.log(response) let lists = JSON.parse(response.body); // Searching for a list with a certain name and store it's id. let certainListId = lists.find(list => list.name === "Flights").id; // Use the stored id in certainListId to get all cards of the list. fetch(`https://api.trello.com/1/lists/${certainListId}/cards`, { method: 'GET' }).then(response => { let certainListCards = JSON.parse(response.body); // Cards in the array is in top to bottom order. So top one is the very first. let firstCard = certainListCards[0]; console.log(firstCard) // Send with the bot the name of the first (top) card thanks to firstCard.name property. }).catch(err => console.error(err)); }).catch(err => console.error(err));

Sin embargo, recibo el siguiente mensaje de error: ingrese la descripción de la imagen aquí

El error está en la línea:

 let lists = JSON.parse(response.body);

Probé el código sin el JSON.parse, pero tengo un error "Error de tipo: listas.encontrar no es una función"

Supongo que necesito el código de análisis, pero no tengo idea de por qué no funciona. Adjunté una imagen de solo imprimir el cuerpo de respuesta en la consola.

Imagen: ingrese la descripción de la imagen aquí

Gracias por leer esto, y agradecería mucho alguna ayuda. Estoy usando node.js (última versión), usando el módulo de búsqueda cruzada para el comando 'buscar'. Solo lo estoy solicitando como

 const fetch = require("cross-fetch");

Dudo mucho que eso cause algún problema, pero siéntete libre de iluminarme. ¡Gracias de nuevo!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

De acuerdo con los documentos de búsqueda cruzada, no obtiene los datos de response.body , sino que se pasa a la segunda promesa.

Esto funciona, las listas devuelven una matriz de objetos:

 let fetch = require('cross-fetch'); fetch('https://api.trello.com/1/boards/0Ph2WHXQ/lists?key=5fe33d73bded56ada14decf701da0203&token=e353cb19fabc8dfbea36e1b824a92ff0b358860b1de2d11c745f6e8321edfc09') .then(res => { if (res.status >= 400) { throw new Error("Bad response from server"); } return res.json(); }) .then(lists => { console.log(lists); }) .catch(err => { console.error(err); });

Producción:

 [ { id: '5d2364f2c87d3d4913fe2061', name: 'READ ME & TEMPLATE', closed: false, idBoard: '5d2363b2748e8e88009875f0', pos: 65535, subscribed: false, softLimit: null },....

Alternativamente, aunque esto no responde a su pregunta, aquí hay una solución para su código que solo usa la API de NodeJS:

 const https = require('https') // this should be in a .gitignored an environment file key = "5fe33d73bded56ada14decf701da0203&token=e353cb19fabc8dfbea36e1b824a92ff0b358860b1de2d11c745f6e8321edfc09" function getBoardLists(boardsId, callback) { const options = { hostname: 'api.trello.com', port: 443, path: `/1/boards/${boardsId}/lists?key=${key}`, method: 'GET' } https.request(options, res => { // references https://stackoverflow.com/a/39612292/9824103 var json = ''; res.on('data', function (chunk) { json += chunk; }); res.on('end', function () { if (res.statusCode === 200) { try { var lists = JSON.parse(json); callback(lists, null) } catch (e) { callback(null, error) } } else { callback(null, Error(`Status code ${res.statusCode} is not 200`)) } }); }).on('error', error => { callback(null, error) }).end() } function getList(listId, callback) { const options = { hostname: 'api.trello.com', port: 443, path: `/1/lists/${listId}/cards?key=${key}`, method: 'GET' } https.request(options, res => { // references https://stackoverflow.com/a/39612292/9824103 var json = ''; res.on('data', function (chunk) { json += chunk; }); res.on('end', function () { if (res.statusCode === 200) { try { var lists = JSON.parse(json); callback(lists, null) } catch (e) { callback(null, error) } } else { callback(null, Error(`Status code ${res.statusCode} is not 200`)) } }); }).on('error', error => { callback(null, error) }).end() } getBoardLists("0Ph2WHXQ", (lists, error) => { if (error) { return console.error(error) } console.log(lists) let flightsListId = lists.find(list => list.name === "Flights").id; getList(flightsListId, (list, error) => { if (error) { return console.error(error) } console.log(list) }) })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda