2023-03-30
P.S. So far only working with NextJs (due to must be node/server side rendering capability)
NEXT_PUBLIC_CLIENT_EMAIL=qwerty
NEXT_PUBLIC_PRIVATE_KEY=abc
useEffect(async () => {
const doc = new GoogleSpreadsheet(YOUR_SPREADSHEET_ID);
await doc.useServiceAccountAuth({
client_email: process.env.NEXT_PUBLIC_CLIENT_EMAIL,
private_key: process.env.NEXT_PUBLIC_PRIVATE_KEY,
});
await doc.loadInfo(); // loads document properties and worksheets
setDoc(doc);
// sheetId = 0, jika sheet id ada -> doc.sheetsById['sheetID']
const sheet = doc.sheetsById[0];
// read data
const rows = await sheet.getRows();
console.log(rows)
}, []);
const updateRow = () => {
const sheet = doc.sheetsById[0];
const row = {
timestamp: timestamp(),
name: name,
wish: wish,
};
await sheet.addRow(row);
}