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:
    curl -s https://api.telegram.org/bot<TOKEN>/getUpdates
    (substituindo <TOKEN> pelo token que você recebeu)
    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:
    curl -s https://api.telegram.org/bot<TOKEN>/getUpdates
    (substituindo <TOKEN> pelo token que você recebeu)
    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>.');