Crie complementos do Google Workspace em 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
Ative o faturamento no seu projeto do Cloud. Saiba como verificar o status de faturamento dos seus projetos.
O SDK do Cloud é 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. A configuração da tela de consentimento do OAuth do complemento define o que o Google mostra aos usuários.
- No console do Google Cloud, acesse Menu > > Branding.
- Se você já tiver configurado o , poderá configurar as seguintes configurações da tela de consentimento do OAuth em Marca, Público-alvo e Acesso a dados. Se você receber a mensagem ainda não configurado, clique em Começar:
- Em Informações do app, em Nome do app, insira um nome para o app.
- Em E-mail para suporte do usuário, escolha um endereço de e-mail de suporte para que os usuários entrem em contato com você se tiverem dúvidas sobre o consentimento.
- Clique em Próxima.
- Em Público, selecione Interno.
- Clique em Próxima.
- Em Dados de contato, insira um endereço de e-mail para receber notificações sobre as mudanças no projeto.
- Clique em Próxima.
- Em Concluir, analise 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, será necessário mudar 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 Cloud Shell Terminal é 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 a API Cloud Functions, a API Cloud Build, a API Google Workspace Add-ons e a API Compute Engine:
gcloud services enable cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ gsuiteaddons.googleapis.com \ compute.googleapis.com
Para iniciar o editor do Cloud Shell, clique em
Abrir editor na barra de ferramentas da janela do Cloud Shell.
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 exemplo:/** * 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" } }
Para retornar ao terminal do Cloud Shell, clique 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 da conta de serviço ausente:
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 conseguir o URL, execute o seguinte comando e procure o campo
url
na seçãohttpsTrigger
:gcloud functions describe loadHomePage
Para voltar ao editor do Cloud Shell, clique em
Abrir editor.
No mesmo diretório que
package.json
, crie o arquivodeployment.json
com o código de exemplo abaixo. 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 recarregue o Gmail para conferir o complemento. Na barra de ferramentas à direita, procure o ícone de um béquer.
Clique no ícone para abrir o complemento. Se necessário, autorize o complemento.
Opcional: limpar
Para evitar cobranças na sua conta, exclua os recursos que você criou:
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 para o 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 seu complemento do Google Workspace, consulte:
- 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