estoy atascado con un problema, ¿alguien puede decirme cómo puedo escribir un archivo desde la hoja de Google usando el siguiente JS, la operación de lectura se realiza bien, tengo un problema en la operación de escritura, dígame qué debo hacer? Si tiene alguna consulta, no dude en preguntar en cualquier momento.
hoja.js
import { google } from 'googleapis'; export async function getDataFromSheets() { try { const target = ['https://www.googleapis.com/auth/spreadsheets.readonly']; const jwt = new google.auth.JWT( process.env.GOOGLE_SHEETS_CLIENT_EMAIL, null, (process.env.GOOGLE_SHEETS_PRIVATE_KEY || '').replace(/\\n/g, '\n'), target ); const sheets = google.sheets({ version: 'v4', auth: jwt }); const response = await sheets.spreadsheets.values.get({ spreadsheetId: process.env.SPREADSHEET_ID, range: 'sheet' }); const rows = response.data.values; if (rows.length) { return rows.map((row) => ({ title: row[0], description: row[1], })); } } catch (err) { console.log(err); } return []; }índice.js
Este es mi archivo index.js aquí, debe escribir su código de visualización de salida
import Head from 'next/head' import Image from 'next/image' import styles from '../styles/Home.module.css' import { getDataFromSheets } from './libs/sheets' export default function Home({ data }) { return ( <div className={styles.container}> <Head> <title>Nextsheet 💩</title> <meta name="description" content="Connecting NextJS with Google Spreadsheets as Database" /> <link rel="icon" href="/favicon.ico" /> </Head> <main> <h1>Welcome to Nextsheet 💩</h1> <p>Connecting NextJS with Google Spreadsheets as Database</p> <ul> {data && data.length ? ( data.map((item) => ( <li key={item}> {item.title} - {item.description} </li> )) ) : ( <li>Error: do not forget to setup your env variables 👇</li> )} </ul> </main> </div> ) } export async function getStaticProps(context) { const sheet = await getDataFromSheets(); return { props: { data: sheet.slice(0, sheet.length), // remove sheet header }, revalidate: 1, // In seconds }; }