Crie complementos do Google Workspace nas Funções do Cloud usando o ambiente de execução do Node.js.
Objetivos
- Prepare o ambiente.
- Crie e implante uma função do Cloud.
- Crie e implante o complemento.
- Instale o complemento.
Pré-requisitos
Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar o status de faturamento dos seus projetos.
O SDK do Cloud está configurado com o projeto do Cloud.
Configurar o ambiente
Abra seu projeto do Cloud no console do Google Cloud.
- No console do Google Cloud, acesse a página Selecionar um projeto.
- Selecione o projeto do Google Cloud que você quer usar. Ou clique em Criar projeto e siga as instruções na tela. Se você criar um projeto do Google Cloud, talvez seja necessário ativar o faturamento dele.
Configurar a tela de permissão OAuth
Os complementos do Google Workspace exigem uma configuração de tela de consentimento. Configurar a tela de permissão OAuth do complemento define o que o Google mostra aos usuários.
- No console do Google Cloud, acesse Menu > Google Auth platform > Branding.
- Se você já tiver configurado o Google Auth platform, poderá definir as seguintes configurações da tela de permissão do OAuth em Branding, Público-alvo e Acesso a dados. Se você receber uma mensagem informando que Google Auth platform ainda não foi configurado, clique em Começar:
- Em Informações do app, no campo Nome do app, insira um nome para o app.
- Em E-mail para suporte do usuário, escolha um endereço de e-mail para que os usuários entrem em contato com você se tiverem dúvidas sobre o consentimento deles.
- Clique em Próxima.
- Em Público-alvo, selecione Interno.
- Clique em Próxima.
- Em Informações de contato, insira um Endereço de e-mail para receber notificações sobre mudanças no seu projeto.
- Clique em Próxima.
- Em Concluir, leia a Política de dados do usuário dos serviços de API do Google e, se concordar, selecione Concordo com a Política de dados do usuário dos serviços de API do Google.
- Clique em Continuar.
- Clique em Criar.
- Por enquanto, você pode pular a adição de escopos. No futuro, quando você criar um app para uso fora da sua organização do Google Workspace, mude o Tipo de usuário para Externo. Em seguida, adicione os escopos de autorização necessários para o app. Para saber mais, consulte o guia completo Configurar a permissão OAuth.
Crie e implemente uma Função do Cloud
No console do Google Cloud, clique em Ativar o Cloud Shell
.
O terminal do Cloud Shell é aberto e inicia uma sessão no painel da parte de baixo do console do Google Cloud.
Clique em Autorizar para provisionar e se conectar ao Cloud Shell.
No terminal do Cloud Shell, ative as APIs Cloud Functions, Cloud Build, Google Workspace Add-ons e Compute Engine:
gcloud services enable cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ gsuiteaddons.googleapis.com \ compute.googleapis.com
Clique em
Abrir editor na barra de ferramentas da janela do Cloud Shell para iniciar o editor.
Esse editor de código integrado oferece a conveniência de visualizar e editar arquivos no mesmo ambiente em que os projetos são criados e implantados.
No diretório vazio, crie o arquivo
function.js
com o seguinte código de amostra:/** * Cloud Function that loads the homepage for a * Google Workspace add-on. * * @param {Object} req Request sent from Google * @param {Object} res Response to send back */ exports.loadHomePage = function addonsHomePage (req, res) { res.send(createAction()); }; /** Creates a card with two widgets. */ function createAction() { return { "action": { "navigations": [ { "pushCard": { "header": { "title": "Cats!" }, "sections": [ { "widgets": [ { "textParagraph": { "text": "Your random cat:" } }, { "image": { "imageUrl": "https://cataas.com/cat" } } ] } ] } } ] } }; }
No mesmo diretório, crie o arquivo
package.json
com o seguinte código de exemplo:{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
Volte ao terminal do Cloud Shell clicando em
Abrir terminal.
Adicione o papel
Cloud Build Service Account
(roles/cloudbuild.builds.builder
) à conta de serviço padrão do Compute Engine.Primeiro, configure a permissão da conta de serviço:
export PROJECT_ID=$(gcloud config get project) export SERVICE_ACCOUNT_NAME=$(gcloud compute project-info describe \ --format="value(defaultServiceAccount)")
Em seguida, conceda a permissão ausente da conta de serviço:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \ --role="roles/cloudbuild.builds.builder"
Execute o seguinte comando para implantar a função:
gcloud functions deploy loadHomePage --runtime nodejs22 --trigger-http
Se solicitado, especifique que você não permite invocações não autenticadas da função. A implantação da função pode levar alguns minutos.
Criar uma implantação de complemento
Encontre o e-mail da conta de serviço do complemento:
gcloud workspace-add-ons get-authorization
Conceda à conta de serviço o papel
cloudfunctions.invoker
. Substitua SERVICE_ACCOUNT_EMAIL pelo camposerviceAccountEmail
da etapa anterior.gcloud functions add-iam-policy-binding loadHomePage \ --role roles/cloudfunctions.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL
Receba o URL da função implantada. Para acessar o URL, execute o seguinte comando e procure o campo
url
na seçãohttpsTrigger
:gcloud functions describe loadHomePage
Volte ao editor do Cloud Shell clicando em
Abrir editor.
No mesmo diretório que
package.json
, crie o arquivodeployment.json
com o seguinte exemplo de código. Substitua URL pelourl
da função implantada na etapa anterior.{ "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"], "addOns": { "common": { "name": "My HTTP Add-on", "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png", "homepageTrigger": { "runFunction": "URL" } }, "gmail": {}, "drive": {}, "calendar": {}, "docs": {}, "sheets": {}, "slides": {}, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }
Volte ao terminal do Cloud Shell para criar a implantação:
gcloud workspace-add-ons deployments create quickstart \ --deployment-file=deployment.json
Instalar o complemento
Instale a implantação no modo de desenvolvimento:
gcloud workspace-add-ons deployments install quickstart
Abra ou atualize o Gmail para ver o complemento. Na barra de ferramentas à direita, procure um ícone de béquer.
Clique no ícone para abrir o complemento. Se solicitado, autorize o complemento.
Opcional: limpar
Para evitar cobranças na sua conta, exclua os recursos criados:
Desinstale o complemento da sua Conta do Google:
gcloud workspace-add-ons deployments uninstall quickstart
Para evitar cobranças pelos recursos usados neste guia de início rápido, exclua o projeto do Cloud:
gcloud projects delete PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Cloud que você usou no guia de início rápido. Encontre o ID do projeto do Cloud no console do Google Cloud, na página "Painel".
Temas relacionados
Para adicionar mais recursos ao complemento do Google Workspace, consulte o seguinte:
- Criar um complemento do Google Workspace usando endpoints HTTP
- Codelab: crie um complemento do Google Workspace com Node.js e o Cloud Run
- Visualizar links com ícones inteligentes