Guias

Como Conectar o Google Sheets ao Seu App

Para conectar o Google Sheets ao seu app, ative a API do Google Sheets em um projeto do Google Cloud, crie uma conta de serviço, compartilhe a planilha com o e-mail da conta de serviço e guarde a chave dela como um segredo do lado do servidor. Depois, o seu servidor lê linhas com spreadsheets.values.get e adiciona linhas com spreadsheets.values.append. Se os usuários precisarem conectar as próprias planilhas, use OAuth; e, se a planilha for totalmente pública, uma simples chave de API basta para leitura.

Este guia cobre qual método se encaixa, as chamadas que você precisa, as cotas e as armadilhas, e prompts para um construtor de apps com IA. Os detalhes do Google vêm da documentação para desenvolvedores do Google em setembro de 2026.

Por que conectar uma planilha

Motivos comuns:

  • Manter o fluxo de trabalho da equipe. A equipe continua editando uma lista de preços ou uma escala no Sheets; o app mostra os dados.
  • Coletar dados onde as pessoas já olham. Novos cadastros, pedidos ou respostas de formulário viram linhas.
  • Relatórios. Exportar dados do app para uma planilha, para quem vive em planilhas.
  • Um degrau intermediário. Começar pela planilha e depois migrar para um banco de dados de verdade. Veja como transformar uma planilha em app.

Escolha como o seu app faz login no Google

O guia de credenciais do Google descreve três tipos:

CredencialO que pode acessarIdeal para
Chave de APISomente dados disponíveis publicamente, como arquivos compartilhados com “Qualquer pessoa com o link”Ler uma planilha pública
Conta de serviçoDados que pertencem ao seu app, ou arquivos específicos compartilhados com o e-mail da conta de serviçoO seu app lendo e escrevendo as suas planilhas
ID de cliente OAuthOs arquivos do próprio usuário, depois que ele consentePermitir que cada usuário conecte as próprias planilhas

Para a maioria dos apps, a conta de serviço é a escolha certa: um conjunto de credenciais, de sua propriedade, com acesso apenas às planilhas que você compartilhar explicitamente com ela.

Passo a passo com uma conta de serviço

  1. Crie ou escolha um projeto do Google Cloud e ative a API do Google Sheets.
  2. Crie uma conta de serviço e uma chave para ela. A chave é um arquivo JSON; trate-a como uma senha.
  3. Compartilhe a planilha com o e-mail da conta de serviço, como Leitor para somente leitura ou Editor para escrever. O guia do Google diz que isso é feito pela tela normal de compartilhamento.
  4. Guarde a chave como segredo no seu servidor, por exemplo GOOGLE_SERVICE_ACCOUNT_JSON, mais o ID da planilha (a longa sequência na URL da planilha) como SHEET_ID.
  5. Chame a API a partir do servidor com a biblioteca cliente do Google para a sua linguagem.
  6. Guarde as leituras em cache se muitos visitantes virem os mesmos dados, para não atingir a cota.

As chamadas que você vai usar

Do guia do Google para ler e escrever valores:

MétodoO que faz
spreadsheets.values.getLê um intervalo, como Leads!A1:E
spreadsheets.values.batchGetLê vários intervalos em uma única requisição
spreadsheets.values.updateEscreve em um intervalo específico
spreadsheets.values.appendAdiciona linhas depois dos dados existentes em uma tabela

Os intervalos usam a notação A1. O Google observa que um intervalo sem nome de aba, como A1:B2, se aplica à primeira aba, então nomeie a aba explicitamente para evitar surpresas quando alguém reordenar as abas.

RAW vs USER_ENTERED

As escritas precisam de um valueInputOption:

  • RAW armazena exatamente o que você envia, como texto. =1+2 é guardado como o texto =1+2.
  • USER_ENTERED trata a entrada como se tivesse sido digitada no Sheets: datas viram datas e =1+2 vira uma fórmula.

Se você escrever um texto que os usuários digitaram no seu app, use RAW. Com USER_ENTERED, alguém pode enviar uma fórmula que é executada quando um colega abre a planilha.

Cotas e erros

Em setembro de 2026, a página de limites da API do Sheets do Google lista:

LimiteRequisições de leituraRequisições de escrita
Por minuto por projeto300300
Por minuto por usuário por projeto6060

Não há limite diário, desde que você fique dentro dos limites por minuto. Ao exceder, a API retorna 429: Too many requests, e o Google recomenda o backoff exponencial truncado: espere mais a cada tentativa falha, com um atraso aleatório, até um máximo. Uma única requisição que leva mais de 180 segundos expira.

Na prática: não chame a API a cada visualização de página. Guarde os dados da planilha em cache por um minuto ou mais, agrupe as leituras com batchGet e agrupe as escritas quando possível.

Opções e trade-offs

AbordagemVantagensDesvantagens
Planilha como fonte de dados ao vivoA equipe edita em uma ferramenta familiar; não há telas administrativas para construirCotas, sem permissões por linha, fácil de quebrar ao renomear uma coluna
Sincronizar a planilha em um banco de dadosLeituras rápidas e confiáveis; o app continua funcionando se o Sheets cairVocê precisa de um job de sincronização e de uma regra sobre qual lado prevalece
Banco de dados primeiro, exportar para a planilhaO app é dono dos dados; a planilha é um relatórioEdições na planilha não voltam para o app
Ferramenta de automação no meioSem código para fluxos simplesMais uma assinatura; mais difícil de depurar

Para qualquer coisa com muitos usuários ou dados sensíveis, um banco de dados é a melhor fonte da verdade. Veja o que é um banco de dados.

Prompts para dar ao seu construtor de apps com IA

Ler uma planilha:

Mostre a aba “Cardápio” da nossa planilha do Google na página do cardápio. Use a API do Google Sheets a partir do servidor, com uma conta de serviço cuja chave JSON está no segredo GOOGLE_SERVICE_ACCOUNT_JSON, e o ID da planilha em SHEET_ID. Leia o intervalo Cardápio!A2:D (nome, descrição, preço, categoria). Guarde o resultado em cache por 5 minutos. Se a API falhar, mostre a última versão em cache. Nunca envie a chave para o navegador.

Escrever linhas:

Quando alguém enviar o formulário de contato, salve no nosso banco de dados e também adicione uma linha à aba “Leads” (data, nome, e-mail, mensagem) usando spreadsheets.values.append com valueInputOption RAW. Se o Google retornar 429, tente de novo com backoff exponencial; se ainda falhar, mantenha o lead no banco de dados e tente depois.

Erros comuns

  • Esquecer de compartilhar a planilha com o e-mail da conta de serviço. A API então retorna um erro de permissão, mesmo com a chave correta.
  • Chave no frontend ou no repositório. A chave JSON dá acesso a todas as planilhas compartilhadas com ela. Veja como manter as chaves de API seguras.
  • Usar USER_ENTERED para a entrada do usuário, o que permite injeção de fórmulas.
  • Chamar a API a cada requisição e atingir a cota por minuto no primeiro pico de tráfego.
  • Depender da posição das colunas. Alguém insere uma coluna e o app lê os dados errados. Leia a linha de cabeçalho e mapeie pelo nome, ou trave o cabeçalho.
  • Compartilhar a planilha mais do que o necessário. “Qualquer pessoa com o link” a torna pública.
  • Usar uma planilha como banco de dados multiusuário. Escritas simultâneas e permissões ausentes causam perda ou vazamento de dados.

Checklist

  • API do Sheets ativada; conta de serviço criada
  • Planilha compartilhada com o e-mail da conta de serviço, com o menor papel necessário
  • Chave e ID da planilha guardados como segredos do servidor
  • Todas as chamadas feitas a partir do servidor
  • Nomes das abas usados nos intervalos
  • RAW usado para textos fornecidos pelo usuário
  • Leituras em cache; erro 429 tratado com backoff
  • O app funciona de forma degradada se o Sheets estiver indisponível
  • Definido qual lado é a fonte da verdade

Google Sheets na Mythex

A Mythex tem duas formas diferentes de trabalhar com o Sheets. Os conectores ligam a sua conta do Google à Mythex para que o agente possa usá-la enquanto você constrói, por exemplo lendo uma planilha para montar um painel a partir dela; a documentação diz que a credencial fica com o serviço de conexão da Mythex e nunca vai para o seu código (veja Conectores, e aprove cada permissão que o Google pedir). Para o app publicado ler ou escrever em uma planilha por conta própria, o caminho confiável é o deste guia: uma chave de conta de serviço guardada como segredo do projeto e chamadas à API do Sheets a partir do seu servidor, como em Integrar qualquer API. Se você está superando a planilha, peça ao agente para mover os dados para o banco de dados do projeto e construir um painel em cima deles.

Perguntas

Como o meu app pode ler uma planilha privada do Google?

O caminho usual é uma conta de serviço do Google Cloud: ative a API do Sheets, crie a conta de serviço e a sua chave e depois compartilhe a planilha com o e-mail da conta de serviço como Leitor ou Editor. O seu servidor usa a chave, guardada como segredo, para chamar a API do Sheets.

Posso usar uma chave de API do Google para acessar uma planilha?

Só para dados públicos. O guia de credenciais do Google diz que as chaves de API servem para acesso anônimo a dados disponíveis publicamente, como arquivos compartilhados com qualquer pessoa que tenha o link. Planilhas privadas precisam de uma conta de serviço ou de OAuth.

Quais são os limites da API do Google Sheets?

Em setembro de 2026, o Google lista 300 requisições de leitura e 300 de escrita por minuto por projeto, e 60 de cada por minuto por usuário por projeto, sem limite diário. Ao exceder, a API retorna um erro 429; o Google recomenda o backoff exponencial truncado.

Devo usar o Google Sheets como banco de dados do meu app?

Funciona para apps pequenos e de pouco tráfego, em que as pessoas também editam os dados na planilha. Para muitos usuários, escritas frequentes, relações entre registros ou permissões por usuário, um banco de dados de verdade é mais confiável, e você ainda pode exportar para uma planilha.

Mythex · Pricing · Crie qualquer coisa com IA · Templates de sites e apps · Mythex comparado · Glossário de criação de apps com IA · Ferramentas grátis para criar apps com IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)