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',
]);