Ir al contenido

Google Sheets

Traé filas de un Google Sheet directo a tu página. Accedé vía sdk.sheets.

const sdk = await ShareOut.create();
if (!await sdk.sheets.isConnected()) {
const ok = await sdk.sheets.authorize(); // opens OAuth popup
if (!ok) return;
}
const { data, headers, rowCount } = await sdk.sheets.fetch({
spreadsheetUrl: 'https://docs.google.com/spreadsheets/d/ABC123/edit',
range: 'Sheet1',
headers: true,
});
getAuthUrl(returnUrl?): Promise<{ authUrl, message }>
authorize(returnUrl?): Promise<boolean>
isConnected(): Promise<boolean>
fetch({ spreadsheetUrl?, spreadsheetId?, range?, headers? }): Promise<{ data, headers?, rowCount }>

Pasá spreadsheetUrl o spreadsheetId. Con headers: true, cada fila se convierte en un objeto con las claves de los nombres de columna de la primera fila.

Traé los datos una vez, guardalos en sdk.json, y renderizá desde ahí para que la navegación no los vuelva a traer:

const { data } = await sdk.sheets.fetch({ spreadsheetId: 'ID', range: 'Data!A1:Z100', headers: true });
await sdk.json.set('sheetsData', { data, fetchedAt: Date.now() });
CódigoSignificado
SHEETS_NOT_CONNECTEDOAuth no completado — llamá a authorize()
SHEETS_ACCESS_DENIEDLa planilla no está compartida con la cuenta conectada
FETCH_ERRORError de la API de Google Sheets

Cuando una página usa una conexión de Google Sheets, ShareOut registra last_synced_at en cada sync. Un barrido horario marca conexiones sin sync en 7+ días y deja una tarjeta Stale data en la campana (y las incluye en el digest semanal del workspace). Re-notifica como máximo una vez por semana mientras siga obsoleta. Abrí la página y re-sincronizá (o arreglá la conexión) para limpiar la condición.

Otros conectores de Data Platform (Snowflake, GA, Shopify, etc.) son proxies de consulta en vivo sin timestamp de sync — este sentinel aplica solo a Sheets hoy.