Com certeza! Você se deparou com um dos problemas mais frustrantes e confusos que afetaram os desenvolvedores de complementos do Google Workspace recentemente. Sua análise está perfeita, e a frustração é totalmente compreensível.
Vamos detalhar exatamente o que está acontecendo e qual é a solução correta.
A causa de toda essa confusão é que existem dois tipos fundamentalmente diferentes de complementos, e você está tentando usar a estrutura de um para construir o outro.
Complementos do Google Workspace (Google Workspace Add-ons):
O que são: São os complementos modernos, baseados em "cartões", que podem funcionar em múltiplos aplicativos host (Gmail, Agenda, Drive).
Manifesto (appsscript.json): A estrutura do manifesto deles é exatamente a que você tem, com as seções "addOns" e "common".
O Ponto Crucial: O Google Forms NÃO é um aplicativo host suportado para Complementos do Google Workspace. Os hosts válidos são gmail, drive e calendar.
Complementos de Editor (Editor Add-ons):
O que são: São os complementos mais antigos e específicos para um único host: Documentos, Planilhas, Apresentações ou Formulários.
Manifesto (appsscript.json): A estrutura do manifesto deles é muito mais simples e não usa as seções "addOns" ou "common".
Você está tentando criar um Complemento de Editor para o Google Forms, mas usando a estrutura de manifesto de um Complemento do Google Workspace. É por isso que nada está funcionando.
"No host app found for deployment ID": Este erro aconteceu porque você tinha um manifesto de Complemento do Workspace ("addOns": { ... }), mas não declarou nenhum host válido (como "drive": {} ou "gmail": {}). O sistema de publicação ficou confuso, sem saber onde seu complemento deveria rodar.
"Invalid manifest: unknown fields: [addOns.form]": Este erro aconteceu quando você tentou corrigir o primeiro. Você corretamente tentou dizer ao sistema que seu host era o Forms, mas o fez dentro da estrutura de um Complemento do Workspace, onde "form" não é um campo reconhecido.
Para que seu complemento seja publicado e funcione dentro do Google Forms, você precisa substituir completamente o conteúdo do seu arquivo appsscript.json por uma estrutura mais simples, específica para complementos de editor.
Esqueça a estrutura com "addOns" e "common".
Aqui está um exemplo de um manifesto correto para um Complemento do Google Forms.
Abra seu projeto de script, vá até o arquivo appsscript.json (se não o vir, clique em Configurações do projeto > Mostrar arquivo de manifesto "appsscript.json" no editor) e substitua todo o conteúdo por isto:
{
"timeZone": "America/Sao_Paulo", // Mude para o seu fuso horário
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "Forms",
"serviceId": "forms",
"version": "v1"
}]
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"oauthScopes": [
"https://www.googleapis.com/auth/forms",
"https://www.googleapis.com/auth/forms.currentonly",
"https://www.googleapis.com/auth/script.container.ui",
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/gmail.send",
"https://www.googleapis.com/auth/presentations",
"https://www.googleapis.com/auth/spreadsheets"
],
"form": {
"name": "NOME DO SEU COMPLEMENTO AQUI",
"logoUrl": "URL_DO_SEU_LOGO_AQUI",
"primaryColor": "#4285F4",
"secondaryColor": "#FFFFFF",
"authorizationEmail": "SEU_EMAIL_DE_SUPORTE_AQUI",
"onFileScopeGrantedTrigger": {
"runFunction": "onFileScopeGranted"
}
}
}
Observações Importantes:
Seção "form": A chave do sucesso está aqui. Em vez de aninhar tudo dentro de "addOns", a configuração específica do host ("form") é um objeto de nível superior.
"onFileScopeGrantedTrigger": Este é o gatilho correto para executar uma função (como onOpen ou, no exemplo, onFileScopeGranted) quando o usuário autoriza o complemento pela primeira vez no documento. É a maneira moderna de lidar com a autorização.
Menus: Você ainda precisará de uma função no seu código .gs para criar o menu do complemento, geralmente usando FormApp.getUi().createAddonMenu().
No seu arquivo de código (.gs), certifique-se de que a função especificada no gatilho exista.
// Exemplo de função de gatilho e criação de menu
function onFileScopeGranted() {
// Esta função é chamada uma vez quando o usuário autoriza o complemento.
// Você pode usá-la para configurações iniciais, se necessário.
onOpen();
}
function onOpen(e) {
// Cria o menu do complemento na interface do Google Forms.
FormApp.getUi()
.createAddonMenu()
.addItem('Iniciar', 'funcaoParaIniciar')
.addToUi();
}
function funcaoParaIniciar() {
// O código que seu complemento executa.
FormApp.getUi().alert('Complemento iniciado!');
}
Salve o novo manifesto e o arquivo de código.
Vá em Publicar > Implantar a partir do manifesto.
Crie uma nova versão e tente instalá-la.
Com a estrutura de manifesto correta, o sistema de publicação agora entenderá que você está criando um Complemento de Editor para o Google Forms, e o erro deve desaparecer.
Greetings,I've been struggling with this issue for about a month now; it happened due to Google changing how Google Apps Script handles Deployment IDs.Basically, every time I try to publish a new version of my add-on (it's private to my organization), I get this error message:
No host applications found for the deployment ID. Re-configure the add-on manifest, or visit the Chat API configuration page to create a Chat app.This issue, as far as I know, was prevalent across all types of add-ons--sheets, docs, forms, slides--and a couple of people posted about it on Reddit and IssueTracker.However, two weeks ago, someone shared a solution relating to changing something in the manifest like this:{"timeZone": "REDACTED","exceptionLogging": "STACKDRIVER","runtimeVersion": "V8","dependencies": {"enabledAdvancedServices": [{"userSymbol": "Forms","serviceId": "forms","version": "v4"}]},"oauthScopes": [],"addOns": {"common": {"name": "REDACTED","logoUrl": "REDACTED","useLocaleFromApp": true,"homepageTrigger": {"runFunction": "onHomepage"}},"form": {"homepageTrigger": {"runFunction": "onHomepage"},"onFileScopeGrantedTrigger": {"runFunction": "onOpen"}}}}When I try to save, I get "appsscript.json" has errors: Invalid manifest: unknown fields: [addOns.form], which is probably because forms add-ons don't support triggers? I don't know what to do.--
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/6c5d5019-0a6b-42e9-bb03-64218487bb42n%40googlegroups.com.