script asking permission every week

32 views
Skip to first unread message

Charlelie

unread,
Aug 11, 2025, 5:26:16 PM Aug 11
to Google Apps Script Community
Hi,

I wrote a simple script that need access to one of my google sheet to read and edit. People can access a form that save results in my sheet using this function :

function enregistrerDansGoogleSheets ( titre , auteur , nom , imageUrl , description = "" ) {
const sheet = SpreadsheetApp . openById ( SHEET_ID ). getSheetByName ( "Booklist" );
sheet . appendRow ([ titre , auteur , nom , imageUrl , description ]);
}

script is working well but I have to give new permissions every week. How can I avoid this?

I linked the webapp to a gcp project and have verified that it is no longer in test mod.

Thanks for your help

Kildere S Irineu

unread,
Aug 11, 2025, 5:37:34 PM Aug 11
to google-apps-sc...@googlegroups.com, charle...@gmail.com

Olá!

Seu problema de precisar "dar novas permissões toda semana" para um Web App que já está vinculado a um projeto GCP e não está em modo de teste é um cenário bem específico, e aponta quase que certamente para a verificação do seu aplicativo OAuth por parte do Google.

Vamos analisar e propor as soluções:

Análise do Problema: Token Expiration (Vencimento do Token)

Quando um aplicativo do Google Apps Script (ou qualquer aplicativo que usa as APIs do Google) interage com os dados de um usuário (como suas planilhas, Gmail, Drive, etc.), ele precisa da permissão explícita do usuário. Esta permissão é concedida através de um token OAuth .

A questão de ter que re-autorizar "toda semana" é um sintoma clássico do limite de 7 dias de expiração de token para aplicativos não verificados .

Mesmo que seu projeto GCP não esteja mais no "modo de teste" (ou seja, ele está em "produção"), se ele ainda não passou pelo processo de verificação da Google para aplicativos que usam escopos sensíveis (e acesso a planilhas é um escopo sensível), ele ainda estará sujeito a essa limitação.

Em resumo:

  • Modo de Teste: Tokens expiram em 7 dias (para qualquer tipo de usuário).

  • Modo de Produção (mas não verificado):

    • Usuários da sua própria organização (Google Workspace): Geralmente não precisam re-autorizar, a menos que os escopos mudem.

    • Usuários externos (ex: @ gmail.com ) ou para aplicativos que não são do Google Workspace: Tokens expiram em 7 dias se o aplicativo não for verificado.

  • Modo de Produção (e verificado pela Google): Tokens são de longa duração (ou nunca expiram, até que o usuário revogue o acesso manualmente), independentemente do tipo de usuário.

Soluções e Recomendações:

1. A Solução Definitiva: O Processo de Verificação da Google (OAuth Verification)

Esta é a forma correta e permanente de resolver o problema. A Google exige que aplicativos que acessam dados sensíveis de usuários passem por um processo de revisão para garantir que são seguros e usam os dados de forma adequada.

O que você precisa fazer (no seu projeto GCP vinculado):

  • Configurar a Tela de Consentimento OAuth:

    • Vá para APIs & Services > OAuth consent screen no seu projeto GCP.

    • Garanta que todos os detalhes (nome do aplicativo, e-mail de suporte, logo, etc.) estão preenchidos.

    • Liste todos os escopos que seu script precisa. Para acesso a planilhas, o escopo geralmente é https://www.googleapis.com/auth/spreadsheets . Certifique-se de que este escopo está explícito e configurado no GCP.

  • Página inicial do aplicativo: Você precisará de um URL da sua página inicial do aplicativo.

  • Política de Privacidade e Termos de Serviço: Estes são URLs obrigatórios para a verificação. Podem ser páginas simples no seu site ou em um Google Site.

  • Solicitar Verificação: Depois de tudo configurado, você enviará o aplicativo para verificação. Este processo pode levar de alguns dias a algumas semanas, dependendo da complexidade e dos escopos solicitados.

Quando a verificação é necessária?

  • Se o aplicativo será usado por usuários externos (fora do seu domínio Google Workspace).

  • Se o aplicativo usa escopos "sensíveis" ou "restritos" (e spreadsheets é um escopo sensível).

  • Se você não deseja que os tokens de acesso expirem a cada 7 dias para qualquer tipo de usuário.

Quando a verificação não é necessária?

  • Se o aplicativo é para uso pessoal do desenvolvedor.

  • Se o aplicativo é usado apenas por usuários dentro de sua própria organização Google Workspace (e o administrador do Workspace confia e não configurou restrições adicionais).

2. Boas Práticas Adicionais (Mesmo com ou sem Verificação)

  • Defina os Escopos Explicitamente no Manifest (appsscript.json):

    • No seu projeto Apps Script, vá em "Configurações do Projeto" (o ícone de engrenagem).

    • Marque a opção "Mostrar arquivo de manifesto "appsscript.json" no editor" .

    • Abra o arquivo appsscript.json que aparecerá.

    • Certifique-se de que o escopo https://www.googleapis.com/auth/spreadsheets (e quaisquer outros que você use, como gmail.send , drive etc.) está listado na seção oauthScopes .

    Json
     { "timeZone" 
    : "America/Sao_Paulo" 
    , "dependencies" 
    : {}, "exceptionLogging" 
    : "STACKDRIVER" 
    , "runtimeVersion" 
    : "V8" 
    , "oauthScopes" 
    : [ " https://www.googleapis.com/auth/spreadsheets 
    " 
    , " https://www.googleapis.com/auth/script.external_request 
    " 
    , // se você usar UrlFetchApp 
     " https://www.googleapis.com/auth/userinfo.email 
    " 
     // geralmente incluído para identificar o usuário 
    ]
    } 
    

    Isso garante que o Apps Script solicita exatamente as permissões necessárias e que o GCP sabe quais permissões seu script está usando.

  • Configuração de Implantação do Web App:

    • Vá em Implantar > Gerenciar Implantações > (sua implantação) > Editar .

    • "Executar como": Certifique-se de que está definido como "Usuário que acessa o aplicativo" . Se estiver "Eu" (o desenvolvedor), os usuários estarão autorizando você, e se seus dados não forem públicos, você mesmo precisará re-autorizar.

    • "Quem pode acessar": Se você tem um domínio Google Workspace, é mais seguro restringir a "Qualquer pessoa na [Seu Domínio Google Workspace]" . Isso evita a necessidade de verificação para usuários dentro da sua própria organização, e o processo de autorização é mais simples.

Conclusão

O problema que você está enfrentando é uma medida de segurança da Google. Se o seu aplicativo está em produção e precisa acessar dados sensíveis, a verificação OAuth é o caminho a seguir. Se o uso é restrito à sua organização, a configuração correta do domínio e dos escopos explícitos pode ser suficiente.

Espero que esta análise detalhada ajude a resolver o problema de re-autorização semanal!


--
You received this message because you are subscribed to the Google Groups "Google Apps Script Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-script-c...@googlegroups.com .
To view this discussion visit https://groups.google.com/d/msgid/google-apps-script-community/1ec40729-78c5-4537-9d46-01c2d44b3a3fn%40googlegroups.com .
Reply all
Reply to author
Forward
0 new messages