Demo Langsung
Contoh kode untuk seluruh 5 mode autentikasi di nuxt-gsheet.
Demonstrasi kode end-to-end untuk 5 mode autentikasi di nuxt-gsheet.
1. Mode Apps Script (appscript)
pages/demo/appscript.vue
<script setup lang="ts">
const { data: items, refresh } = await useGSheetAsObject('A1:C50', { sheet: 'Feedback' })
const { append } = useGSheetWrite({ sheet: 'Feedback' })
const name = ref('')
const message = ref('')
const save = async () => {
await append('A1:C1', [[String(Date.now()), name.value, message.value]])
await refresh()
}
</script>
<template>
<div>
<form @submit.prevent="save">
<input v-model="name" placeholder="Nama" required>
<input v-model="message" placeholder="Pesan" required>
<button type="submit">Kirim</button>
</form>
<ul>
<li v-for="item in items" :key="item.id">{{ item.name }}: {{ item.message }}</li>
</ul>
</div>
</template>
2. Mode GViz dengan Filter SQL (gviz)
pages/demo/gviz.vue
<script setup lang="ts">
const { data: topSales } = await useGSheetAsObject('A1:C100', {
sheet: 'sales',
query: 'SELECT A, B, C WHERE C > 1000 ORDER BY C DESC'
})
</script>
3. Mode Ekspor CSV (csv)
pages/demo/csv.vue
<script setup lang="ts">
const { data: catalog } = await useGSheet('A1:Z50', { sheet: 'Catalog' })
</script>
4. Mode API Key (apikey)
pages/demo/apikey.vue
<script setup lang="ts">
const { data: inventory } = await useGSheetAsObject('A1:C20', { sheet: 'Inventory' })
</script>
5. Mode Service Account (service-account)
pages/demo/service-account.vue
<script setup lang="ts">
const { data: orders, refresh } = await useGSheetAsObject('A1:D50', { sheet: 'Orders' })
const { append } = useGSheetWrite({ sheet: 'Orders' })
const addOrder = async () => {
await append('A1:D1', [['ORD-99', 'Acme Corp', '499.00', 'Paid']])
await refresh()
}
</script>