Fonte de dados: Telegram
1Apresentação
O Telegram permite criar "espaços" de comunicação para os quais notificações podem ser enviadas.
Se você configurou corretamente os parâmetros de conexão do Telegram, o Temma cria automaticamente um objeto do tipo \Temma\Datasources\Telegram, que você pode usar para enviar mensagens. Por convenção, vamos supor que você nomeou essa conexão telegram no arquivo etc/temma.php (veja a documentação de configuração).
Nos controladores, a conexão com o Telegram fica então disponível da seguinte forma:
$tg = $this->telegram;
Nos demais objetos gerenciados pelo componente de injeção de dependências, a conexão com o Telegram é acessível da seguinte forma:
$tg = $loader->dataSources->telegram;
$tg = $loader->dataSources['telegram'];
2Configuração
Para enviar mensagens no Telegram, você deve primeiro criar um bot. Para isso, procure pelo usuário BotFather e envie a mensagem /newbot. Responda às perguntas dele e você receberá um token de API.
No arquivo etc/temma.php (veja a documentação de configuração), você pode então declarar o DSN (Data Source Name) usado para se conectar ao Telegram.
O DSN de conexão com o Telegram é escrito da seguinte forma: telegram://API_TOKEN
Para enviar mensagens, você precisará de um identificador de conversa correspondente à conversa ou canal para onde deseja que as mensagens sejam enviadas:
-
Para uma conversa privada, envie uma mensagem ao seu bot e, em seguida, execute o seguinte comando:
(substituindo <TOKEN> pelo token que você recebeu)curl -s https://api.telegram.org/bot<TOKEN>/getUpdates
No fluxo JSON retornado, procure por uma seção como "chat": {"id": 123456789} para recuperar o identificador da conversa. -
Para uma conversa em grupo, adicione o bot ao grupo e, em seguida, execute o seguinte comando:
(substituindo <TOKEN> pelo token que você recebeu)curl -s https://api.telegram.org/bot<TOKEN>/getUpdates
No fluxo JSON retornado, procure por uma seção como "chat": {"id": -123456789} (número negativo) para recuperar o identificador da conversa. - Para enviar mensagens em um canal, adicione o bot ao canal como administrador. O identificador da conversa é o nome do canal (no formato @my_channel).
3Conteúdo da notificação
As notificações podem conter texto simples ou código HTML simplificado.
4Chamadas unificadas
4.1Acesso tipo array
// envia uma mensagem simples
$tg['123456789'] = "Mensagem a enviar";
// mensagem com HTML
$tg['@meu_canal'] = 'Texto com <i>formatação</i> <b>simples</b>.';
4.2Método avançado
// envia uma mensagem simples
$tg->set('@meu_canal', "Mensagem a enviar");
// notificação avançada
$tg->set('123456789', 'Texto com <i>formatação</i> <b>simples</b>.');