Telegram

A integração do Dialogflow com o Telegram possibilita criar bots do Telegram com facilidade, empregando processamento de linguagem natural baseado na tecnologia do Dialogflow.

Limitações

Somente o idioma padrão do agente é compatível com essa integração.

Como configurar o Telegram

Para configurar a integração do agente com o Telegram, é necessário o seguinte:

Como criar um bot no Telegram

  1. Entre no Telegram e acesse https://telegram.me/botfather.
  2. Clique no botão Start na interface da Web ou digite /start.
  3. Digite ou clique em /newbot e digite um nome.
  4. Digite um nome de usuário do bot terminando em “bot”, por exemplo, garthsweatherbot.
  5. Copie o token de acesso gerado.

Como configurar o Dialogflow

  1. No Dialogflow, acesse Integrations no menu à esquerda.
  2. Clique no bloco Telegram.
  3. Cole o token de acesso no campo apropriado.
  4. Clique no botão Iniciar

Teste

O BotFather fornecerá um link para o bot assim que você concluir a configuração. Acesse este link para testar o agente.

Como gerar novamente o token do Telegram

Para gerar novamente o token do Telegram para um agente com a integração de Telegram ativada, faça o seguinte:

  1. Acesse as configurações de integração do Dialogflow e clique em STOP.
  2. Gere novamente o token no Telegram.
  3. Insira o novo token do Telegram nas configurações de integração e clique em START.

Como integrar o agente com um novo bot do Telegram

No caso de um agente com integração do Telegram ativada, para vinculá-lo a um novo bot do Telegram, faça o seguinte:

  1. Acesse as configurações de integração do Dialogflow e clique em STOP.
  2. Exclua o bot antigo no Telegram, se necessário.
  3. Insira o novo token do Telegram nas configurações de integração e clique em START.

Eventos

Os seguintes eventos são acionados por essa integração:

Evento Descrição
TELEGRAM_WELCOME Acionado quando um usuário inicia uma conversa com o bot do Telegram ou digita /start.
TELEGRAM_HELP Acionado quando um usuário insere /help durante a conversa com o bot do Telegram.
TELEGRAM_SETTINGS Acionado quando um usuário insere /settings durante a conversa com o bot do Telegram.

Mensagens de resposta avançadas

As mensagens de resposta avançadas a seguir são compatíveis.

Respostas de imagem

Formatos e tamanhos compatíveis:

  • Tamanho máximo de 5 MB

Cards de resposta

É obrigatório usar o campo do URL da imagem ou o campo do título.

Botões com um URL e com um postback de texto são aceitos. Quando tocado, um botão com um URL abrirá uma página da Web, enquanto um botão com texto enviará o texto como uma consulta do usuário.

Respostas rápidas

Respostas rápidas em integrações de um clique do Telegram correspondem a botões de teclado no Telegram (em inglês).

Quando um usuário clica em um dos botões, os botões são dispensados. Isso evita que os usuários cliquem em botões anexados a mensagens antigas em uma conversa.

Respostas personalizadas de payload

Texto formatado e hiperlinks em integração de um clique do Telegram

Seus bots do Telegram podem enviar texto formatado e hiperlinks.

No exemplo a seguir, enviamos um texto formatado com um hiperlink usando o modo de análise Markdown:

{
  "telegram": {
    "text": "You can read about *entities* [here](/docs/concept-entities).",
    "parse_mode": "Markdown"
  }
}

Consulte a documentação do Telegram (em inglês) para referência.

Botões de teclado in-line

No exemplo a seguir, mostramos como é possível definir botões de teclado in-line (em inglês) no elemento de payload personalizado.

{
  "telegram": {
    "text": "Pick a color",
    "reply_markup": {
      "inline_keyboard": [
        [
          {
            "text": "Red",
            "callback_data": "Red"
          }
        ],
        [
          {
            "text": "Green",
            "callback_data": "Green"
          }
        ],
        [
          {
            "text": "Yellow",
            "callback_data": "Yellow"
          }
        ],
        [
          {
            "text": "Blue",
            "callback_data": "Blue"
          }
        ],
        [
          {
            "text": "Pink",
            "callback_data": "Pink"
          }
        ]
      ]
    }
  }
}