Fonte de dados: Google Chat


1Apresentação

Google Chat permite criar espaços de comunicação, para os quais é possível enviar notificações.

Se você configurou corretamente os parâmetros de conexão do Google Chat, o Temma cria automaticamente um objeto do tipo \Temma\Datasources\GoogleChat, com o qual você pode enviar notificações. Por convenção, vamos considerar que você nomeou essa conexão gchat no arquivo etc/temma.php (veja a documentação de configuração).

Nos controladores, a conexão ao Google Chat fica então disponível ao escrever:

$gchat = $this->gchat;

Em outros objetos gerenciados pelo componente de injeção de dependências, a conexão ao Google Chat é acessível ao escrever:

$gchat = $loader->dataSources->gchat;
$gchat = $loader->dataSources['gchat'];

2Configuração

Para enviar mensagens para o Google Chat, você deve primeiro criar um webhook. Cada webhook está vinculado a um espaço no qual pode publicar mensagens.

No arquivo etc/temma.php (veja a documentação de configuração), você declara o DSN (Data Source Name) usado para se conectar ao Google Chat.

O DSN usado para se conectar ao Google Chat pode ser escrito como googlechat://WEBHOOK

Sendo WEBHOOK o valor da URL do webhook, sem o prefixo https://.
Exemplo: chat.googleapis.com/v1/spaces/XXXXXXX/messages?key=YYYYYYY&token=ZZZZZZZ


3Conteúdo das notificações

As notificações podem conter texto simples, ou uma variante da sintaxe Markdown, ou um layout complexo com título, subtítulo, pictograma, código HTML, imagens e links.


4Chamadas unificadas

4.1Acesso como array

// envia uma mensagem simples
$gchat[''] = "Mensagem a enviar";

// mensagem com Markdown
$gchat[''] = 'Texto com _formatação_ *simples*.';

$gchat[''] = [
    'title'    => 'Um título',
    'subtitle' => 'Um subtítulo',
    'picto'    => 'https://url do pictograma',
    // cada seção pode ter um título e: um texto, uma imagem ou uma lista de botões
    'sections' => [
        [
            'title' => 'Primeira seção',
            'html'  => 'Um texto',
        ],
        [
            'icon'        => 'STAR',
            'topLabel'    => 'Status',
            'html'        => "Um link.",
            'bottomLabel' => 'Gerado ontem',
        ],
        [
            'image' => 'https://url_da_imagem',
            'alt'   => 'Texto alternativo', // opcional
        ],
        [
            'title' => 'Outra seção',
            'buttons' => [
                'Button 1' => 'https://link_1',
                'Button 2' => 'https://link_2',
                'Button 3' => 'https://link_3',
            ]
        ],
    ],
];

4.2Método avançado

// envia uma mensagem simples
$gchat->set('', "Mensagem a enviar");

// notificação rica
$gchat->set('', [
    'title' => 'Um título',
    'picto' => 'https://url do pictograma',
]);