"You do not have permission to call DocumentApp.openById. Required permissions: https://www.googleapis.com/auth/spreadsheets"
Esse erro não faz sentido direto porque DocumentApp.openById está relacionado ao serviço Google Docs, enquanto a permissão mencionada (https://www.googleapis.com/auth/spreadsheets) se refere ao Google Sheets. Isso indica uma inconsistência interna da execução de escopos na plataforma do Apps Script.
Alterações recentes nos escopos automáticos do Apps Script:
Pode haver uma mudança silenciosa no modo como o Apps Script trata escopos dinâmicos quando o script é executado como “usuário acessando o app”.
Se o script acessar vários serviços (Sheets, Docs, Drive), o Apps Script pode confundir ou falhar ao pedir consentimento corretamente, especialmente com permissões mínimas.
Usuários com tokens inconsistentes (token scopes):
Se um usuário deu consentimento antes da mudança de escopos exigidos, seu token OAuth pode estar desatualizado/inválido momentaneamente.
Isso explicaria o fato de funcionar 30 segundos depois: o token pode ter sido renovado automaticamente.
Comportamento intermitente de serviços do Google Apps Script:
Há relatos esporádicos em fóruns como o Stack Overflow e o Issue Tracker do Google sobre erros parecidos (ex. Exception: You do not have permission...) ocorrendo após atualizações nos serviços.
Se estiver usando o appsscript.json, declare todos os escopos usados:
Isso força o Apps Script a pedir autorização completa já no primeiro uso, evitando falhas intermitentes.
Se você controla os dados e pode assumir essa responsabilidade, mudar para “Executar como proprietário do script” pode eliminar a variação entre usuários.
try/catch e console.error()Isso permite mapear quando, com quem e em quais condições o erro ocorre:
try { const doc = DocumentApp.openById('DOCUMENT_ID'); // uso do documento } catch (e) { console.error('Erro ao abrir o Documento:', e.message); throw e; }
Peça para os usuários afetados executarem manualmente uma função simples que usa todos os serviços envolvidos — isso forçará a atualização dos tokens.
function forcarPermissoes() { SpreadsheetApp.openById('ID_PLANILHA'); DocumentApp.openById('ID_DOCUMENTO'); DriveApp.getFileById('ID_ARQUIVO'); }
Sim, outros desenvolvedores também estão enfrentando comportamentos parecidos, e não há nota oficial do Google no momento, mas pode estar relacionado a:
Nova política de escopos mínimos (OAuth granular scopes)
Transição interna de segurança no runtime do Apps Script
Alterações nos endpoints de API silenciosas
Você não está sozinho — há indícios claros de alteração recente no backend da plataforma. Para mitigar, recomendo:
Declarar escopos no appsscript.json
Considerar rodar como "proprietário"
Usar logs para rastrear
Forçar renovação de permissões com uma função dedicada
--
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/cc6ded9d-df2a-4bc1-a434-05436771e693n%40googlegroups.com.