Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

160
Visualizações
Problema al usar la hoja de cálculo de Google como fuente para un sitio web de Next.JS: los cambios no actualizarán las páginas

Hice el sitio web de este restaurante y uso la hoja de cálculo de Google para introducir contenido en las páginas del menú. La elección de dicho método se basó en la simplicidad y la experiencia del cliente.

Estoy usando el paquete google-spreadsheet para obtener toda la información que necesito de este documento en Google Drive...

 //** ../pages/api/cardapios/index.js import { GoogleSpreadsheet } from "google-spreadsheet"; export default async function getCardapioFromSlug(indexNumber) { try { const doc = new GoogleSpreadsheet(<%GOOGLE_SPREADSHEET_ID%>) await doc.useServiceAccountAuth({ client_email: process.env.GOOGLE_SHEETS_SERVICE_ACCOUNT_EMAIL, private_key: process.env.GOOGLE_SHEETS_PRIVATE_KEY, }); await doc.loadInfo() const cardapio = doc.sheetsByIndex[indexNumber] const rows = await cardapio.getRows() if (rows.length) { return rows.map(({ Código, Produto, Unidade, Descrição, Valor, Procedência, Categoria }) => { return { Código, Produto, Unidade, Descrição, Valor, Procedência, Categoria } }) } } catch (err) { console.log(err) } return []; }

...luego introduciéndolo en la página usando la función getStaticProps() . Funcionó de maravilla una vez que configuré todo correctamente.

 // ../pages/unidades/[slug].js export async function getStaticProps({ params }) { const sanityData = await getCardapio(params.slug) const indexNumber = sanityData[0].id // console.log("index number", indexNumber) const produtos = await getCardapioFromSlug(indexNumber) const produtosStringfied = JSON.stringify(produtos) const produtosArray = JSON.parse(produtosStringfied) return { props: { cardapio: { info: sanityData[0] || null, items: produtosArray || null } }, revalidate: 1 } }

El problema es que después de que cambiamos los valores de algunas celdas en el documento de origen, el contenido no se actualizó automáticamente en el sitio.

Intenté volver a implementarlo (con la caché de compilación activada y desactivada) para que el proceso de compilación tomara el contenido del documento una vez más y actualizara el sitio, pero no funcionó. Una idea era crear un webhook que estuviera disponible para que el cliente ejecutara un comando simple en su máquina y reconstruyera la página con la nueva información, pero este enfoque parece ser inútil.

Redacté algunos artículos ( este, por ejemplo ) en webhooks personalizados para hojas de cálculo de Google, pero realmente no puedo entender cómo desencadenaría algo en mi página. Realmente no creo que realmente funcione.

Ahora estoy un poco atascado en dónde debo ir. ¿Quizás debería reescribir mi getStaticProps() ?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El problema no tiene nada que ver con el código en sí, sino con el mal uso de la API. El id de la hoja de cálculo era incorrecto, todavía se usaba un prototipo que se usó como base para el final que tiene el cliente. Cambié el env var y todo salió bien.

Tuve que forzar la implementación ignorando el caché de compilación a través de vercel cli . Gracias a cualquiera que haya pasado tiempo comentando y preguntándose sobre este tema.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda