Skip to content

Google Chat ​

O Standcast pode publicar o consolidado de um time num espaço do Google Chat em vez de num canal do Slack. O app do Standcast para o Google Chat faz o mesmo que o bot do Slack:

  • publica o consolidado do time no espaço no digest_at, e as dailies atrasadas na thread dele;
  • manda lembretes e impedimentos encaminhados por mensagem direta;
  • manda impedimentos sugeridos por mensagem direta quando o time tem signals.direct_message: true.

Uma organização pode usar o Slack num time e o Google Chat em outro. A escolha é por time, no standcast.yml.

O app não lê mensagens nos espaços. Ele não tem cards nem comandos: a daily continua sendo escrita no seu agente de IA ou na CLI.

Disponibilidade ​

O app funciona nos domínios do Google Workspace em que ele está disponível. Uma listagem no Google Workspace Marketplace vem em breve, para que qualquer domínio do Workspace possa instalá-lo. Até lá, se você não encontrar o app do Standcast no Google Chat, escreva para support.standcast@usefachada.dev.

Se o card do Google Chat no app web diz "O Google Chat não está disponível neste servidor.", o servidor do Standcast que você usa não tem um app do Google Chat configurado.

1. Adicione o app a um espaço ​

  1. No Google Chat, abra o espaço onde o consolidado deve chegar.
  2. Abra o menu do espaço, escolha Apps e integrações, depois Adicionar apps, e escolha Standcast.

O app publica uma mensagem no espaço, em inglês e português, com um código de vínculo:

O Standcast está neste espaço. Para receber os consolidados aqui, um admin da sua organização no GitHub cola este código no Standcast, em Configuração → Google Chat: K7QF3MZP. O código vale por 24 horas.

O código tem 8 caracteres, vale por 24 horas e só funciona uma vez. Para receber um código novo, remova o app do espaço e adicione de novo. O código novo substitui o anterior.

2. Vincule o espaço ​

Só um admin da organização pode vincular um espaço: um admin da organização no GitHub, ou o dono da conta, numa conta pessoal.

No app web, abra Configuração. No card Google Chat, cole o código em Código de vínculo e clique em Vincular espaço. Você também pode usar a etapa Google Chat no fim da página de setup renderizada pelo servidor.

O card passa a listar os espaços vinculados, com o nome de exibição do espaço e o nome dele, como spaces/AAAAbbbbCCC. Use Copiar para copiar o nome para o standcast.yml. Os outros membros veem a lista só para leitura.

Se o código não funcionar:

MensagemO que fazer
Este código não é válido. Ele pode ter expirado ou já ter sido usado.Remova o app do espaço e adicione de novo para receber outro código.
Este espaço já está vinculado a outra organização.Um admin dessa organização desvincula o espaço antes.
Muitas tentativas. Espere um minuto e tente de novo.Espere um minuto. As tentativas de vínculo são limitadas a 10 por minuto.
Esta organização já tem 20 espaços vinculados, o máximo. Desvincule um antes.Uma organização pode vincular até 20 espaços. Desvincule um que não usa mais.

Depois do vínculo, o app publica no espaço, em inglês e português, qual organização passa a receber os consolidados ali. Se não for a sua organização, remova o app do espaço para desfazer o vínculo.

Um espaço só pode estar vinculado a uma organização. Colar o código é o que prova que a sua organização pode publicar ali: só o nome do espaço no standcast.yml não basta.

3. Coloque o espaço no standcast.yml ​

Use provider: google-chat e o nome do espaço como canal:

text
chat:
  provider: google-chat
  channel: spaces/AAAAbbbbCCC

O nome do espaço começa com spaces/. Copie do card do Google Chat, ou pegue a última parte do endereço do espaço no Google Chat e coloque spaces/ antes. Veja a referência do standcast.yml.

A página de setup e o app web avisam no card do time quando o espaço não está vinculado à sua organização, não foi encontrado ou não tem o app.

Desvincular um espaço ​

No card do Google Chat, um admin clica em Desvincular e depois em Desvincular agora. O Standcast para de publicar naquele espaço. Remover o app do espaço no Google Chat tem o mesmo efeito.

Quando a organização fica sem nenhum espaço vinculado, o Google Chat é desconectado. O vínculo de cada pessoa com o Google Chat é mantido, e volta a valer assim que um espaço for vinculado. Para vincular o espaço de novo, remova o app do espaço e adicione de novo para receber um código novo.

Como as pessoas são vinculadas ​

O Google Chat não deixa o app achar uma pessoa pelo e-mail, então cada pessoa se vincula uma vez:

  1. Rode standcast login, para o Standcast conhecer a sua conta do GitHub.
  2. No Google Chat, mande uma mensagem direta para o app do Standcast. Qualquer texto serve.

O Standcast compara o e-mail da sua conta do Google com o e-mail principal verificado da sua conta do GitHub, e vincula você em todas as suas organizações que têm um espaço vinculado. O app responde:

RespostaO que significa
Vínculo feito, @seu-login.Pronto.
Nenhuma conta do Standcast usa este e-mail. Rode standcast login primeiro e depois me mande uma mensagem de novo.O Standcast não tem conta com este e-mail. Entre primeiro. Se o seu e-mail do GitHub é outro, veja abaixo.
Achei a sua conta, mas nenhuma organização sua conectou o Google Chat ao Standcast ainda. Peça a um admin para vincular um espaço e me mande uma mensagem de novo.Vincule um espaço primeiro e mande uma mensagem para o app de novo.
Este e-mail pertence a mais de uma conta do GitHub no Standcast, então não vinculei nenhuma. Peça a um admin para definir google_chat para você em members no standcast.yml, ou deixe o e-mail certo só na sua conta do GitHub e rode standcast login de novo.Duas ou mais contas do GitHub que entraram no Standcast têm este e-mail, então o Standcast não vincula nenhuma. Em cada organização dessas contas que usa o Google Chat, ele também apaga os vínculos do Google Chat dessas contas e qualquer vínculo com este usuário do Google Chat. Mapeie a pessoa à mão, como abaixo, ou tire o e-mail das outras contas.

A resposta vem no idioma do time quando o Standcast sabe qual é, e em inglês e português quando não sabe. Nas respostas de conta não encontrada e de e-mail em mais de uma conta, o app também diz o id da pessoa no Google Chat (users/ seguido de dígitos), pronto para o mapeamento abaixo.

Quando os e-mails são diferentes, por exemplo quando o e-mail principal do GitHub é pessoal e o do Google é o da empresa, um admin mapeia a pessoa à mão no standcast.yml, com o id de usuário dela no Google Chat:

text
members:
  bob: { google_chat: users/123456789 }

O valor precisa ser users/ seguido de dígitos. Os dígitos são o id de usuário do Google da pessoa, o mesmo id que o Admin SDK do Google Workspace e a People API usam.

As menções no consolidado usam o mapeamento como está, sem conferência. As mensagens diretas só conferem o mapeamento quando ele é um usuário diferente do que a pessoa vinculou pela mensagem direta: antes de cada uma dessas mensagens diretas, o Standcast pergunta ao Google Chat se esse usuário está em um dos seus espaços vinculados. Ele confere todos os espaços vinculados, até 5 ao mesmo tempo e até 4 segundos por conferência, e para no primeiro em que a pessoa participa. Se ela não estiver em nenhum, nada é enviado e a entrega falha com no_chat_identity. Se o Google Chat não responder a tempo, a entrega falha com timeout: lembretes e impedimentos encaminhados são tentados de novo, uma mensagem de impedimento sugerido não. Quando o mapeamento é o mesmo usuário que a pessoa vinculou pela mensagem direta, o Standcast envia sem a conferência. Um espaço vinculado pode ter convidados externos, então mapeie só pessoas em quem você confia.

O consolidado menciona cada pessoa vinculada com o usuário dela no Google Chat, e mostra @ seguido do login do GitHub, como texto, quando não há vínculo.

O que acontece sem vínculo ​

  • A pessoa não está vinculada. Lembretes, impedimentos encaminhados e impedimentos sugeridos para ela falham com no_chat_identity. O consolidado sai mesmo assim, com @login.
  • Ninguém para quem um impedimento iria pode ser alcançado. Quando nenhuma das pessoas que o Standcast escolheu para um impedimento, como quem revisa, os donos do código ou as pessoas do card, tem vínculo com o Google Chat ou um mapeamento confirmado, o impedimento vai para os gestores do time. Nenhuma falha é registrada para as pessoas escolhidas antes. A exceção é uma conferência de participação que estourou o tempo: aí o impedimento não vai para os gestores, e a entrega para essa pessoa falha com timeout e é tentada de novo.
  • A pessoa nunca abriu uma mensagem direta com o app. O Google Chat só entrega mensagem direta depois que a pessoa falou com o app uma vez. As entregas para ela falham com no_dm_space e não são repetidas. Peça para ela mandar uma mensagem direta para o app.
  • O espaço não está vinculado à sua organização. O consolidado e as dailies atrasadas do time falham com space_not_linked. Nada é publicado, e não há nova tentativa. Vincule o espaço com um código.

Erros de entrega ​

Quando uma publicação falha, a página de setup e o app web mostram a falha em "Últimas entregas com falha". O Standcast tenta cada mensagem até 3 vezes no total, com os mesmos limites de tempo do Slack: um consolidado só é tentado de novo até 120 minutos depois do digest_at, e um lembrete nunca sai no digest_at ou depois dele.

Código do erroSignificadoComo resolver
space_not_linkedO espaço do time não está vinculado a esta organização. Não há nova tentativa.Adicione o app ao espaço e vincule com o código.
no_dm_spaceA pessoa ainda não mandou mensagem para o app do Standcast. Não há nova tentativa.Peça para a pessoa mandar uma mensagem direta para o app.
channel_not_foundO espaço não existe, ou o chat.channel não é um nome spaces/... válido.Confira o chat.channel. Copie o nome do card do Google Chat.
not_in_channelO app não está no espaço, ou não pode publicar ali.Adicione o app do Standcast ao espaço.
user_not_foundO Google Chat não conhece o usuário da pessoa. O Standcast apaga o vínculo guardado.Peça para a pessoa mandar mensagem para o app de novo, ou corrija members.<login>.google_chat.
invalid_authO Google Chat recusou as credenciais do app do Standcast.Fale com o suporte.
ratelimitedO Google Chat pediu para o Standcast ir mais devagar.Nada a fazer; há nova tentativa.
timeout, request_failed, http_error, invalid_responseO Google Chat não respondeu a tempo, não pôde ser acessado, ou respondeu com erro.Nada a fazer; há nova tentativa. Fale com o suporte se repetir.
no_chat_connectionNenhum espaço está vinculado a esta organização, ou o servidor não tem app do Google Chat.Vincule um espaço. Se a página de setup diz que o Google Chat não está disponível neste servidor, fale com quem opera o servidor para configurar o Google Chat.
no_chat_identityA pessoa, ou o gestor para quem um impedimento foi, não tem vínculo com o Google Chat, ou o usuário em members.<login>.google_chat não está em nenhum dos seus espaços vinculados.Peça para a pessoa mandar mensagem para o app, ou adicione a pessoa a um espaço vinculado.
no_route_targetUm impedimento não tinha destinatário nenhum, por exemplo porque quem escreveu é o único gestor do time.Adicione outro gestor ao time.
worker_diedO worker parou três vezes durante o envio.Fale com o suporte se repetir.
internal_errorErro inesperado.Fale com o suporte se repetir.

Limites que vale conhecer ​

  • As mensagens são texto simples. Um consolidado com mais de 4.096 caracteres é cortado e termina com "… see Standcast".
  • O app só reage quando é adicionado a um espaço ou removido dele, e a mensagens diretas. Mencionar o app num espaço não faz nada.
  • Códigos de vínculo: 8 caracteres, valem por 24 horas, uso único. As tentativas de vínculo são limitadas a 10 por minuto.
  • O Standcast trata no máximo 120 eventos do Google Chat por espaço por minuto.

O que o app recebe e guarda está em Privacidade.