LINE

Com a integração do LINE do Dialogflow, é possível usar seu agente do Dialogflow como um bot do LINE.

Limitações

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

Como funciona

A integração funciona assim:

  • Você cria um canal LINE.
  • Depois você associa seu agente do Dialogflow a esse canal para que ele se comunique.
  • A integração com o Dialogflow envia mensagens ao usuário final usando a API LINE Messaging.
  • A integração com o Dialogflow recebe mensagens do usuário final por meio da função de Webhook de linha.

Configuração

Para configurar a integração:

  1. Siga as etapas para criar um canal do LINE: Primeiros passos com a API Messaging.
  2. Consiga o URL do webhook do LINE no Console do Dialogflow:
    1. Acesse o console do Dialogflow ES.
    2. Clique em Integrations no menu da barra lateral à esquerda.
    3. Clique em LINHA.
    4. Copie o valor de Webhook URL. Você precisará dele para configurar seu webhook do LINE.
  3. Configure um webhook do LINE:
    1. Siga as etapas para configurar um webhook do LINE para seu canal: LINE Receive messages (webhooks).
    2. Forneça a configuração do webhook LINE com o URL do webhook copiado acima.
    3. Copie os valores de ID do canal, Chave secreta do canal e Token de acesso ao canal. Você precisará desses valores para configurar a integração do Dialogflow.
  4. Configure a integração do Dialogflow:
    1. Acesse o console do Dialogflow ES.
    2. Clique em Integrations no menu da barra lateral à esquerda.
    3. Clique em LINHA.
    4. Cole o ID do canal, a chave secreta do canal e o token de acesso do canal nos respectivos campos.
    5. Escolha um ambiente, conforme aplicável.
    6. Clique em INICIAR.

Verificação de assinatura do webhook

O Dialogflow ES valida o cabeçalho da solicitação HTTP X-Line-Signature em cada solicitação de webhook recebida usando o secret do canal do LINE.

Para verificar a autenticidade da solicitação, o Dialogflow ES calcula um resumo HMAC-SHA256 codificado em base64 do corpo da solicitação POST HTTP bruta com o secret do canal e o compara com o cabeçalho X-Line-Signature. Para detalhes sobre como o LINE assina payloads de webhook, consulte a documentação de validação de assinatura do LINE.

Se uma solicitação de webhook tiver um cabeçalho X-Line-Signature ausente, duplicado ou inválido, o Dialogflow ES vai rejeitar a solicitação com um código de status HTTP 400 Bad Request.

Para que a verificação de assinatura do webhook continue funcionando:

  • Verifique se o secret do canal configurado no console do Dialogflow ES corresponde ao secret do canal ativo nas configurações do canal da API LINE Messaging. Se você alternar ou reemitir o secret do canal do LINE, atualize-o no console do Dialogflow ES e reinicie a integração.
  • Se você rotear o tráfego do webhook por um proxy, gateway de API ou serviço de middleware antes de encaminhá-lo ao Dialogflow ES, encaminhe o cabeçalho X-Line-Signature sem modificações e envie os bytes exatos do corpo da solicitação bruta sem serializar novamente ou alterar o espaço em branco.
  • Não envie solicitações não assinadas diretamente para o URL do webhook do LINE do Dialogflow ES.

Teste

Para testar o agente, toque nos três pontos horizontais na tela principal do app LINE. Em seguida, toque no ícone do QR code e leia o QR code na página de configurações do bot. Isso adiciona o bot à lista de conversas.

Mensagens de resposta avançadas

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

Respostas de imagem

Um tipo de resposta de imagem do Dialogflow é enviado para LINE como um tipo de mensagem de imagem LINE.

Os formatos e os tamanhos compatíveis são:

  • jpeg
  • tamanho máximo de 1 MB
  • dimensões máximas de 240 x 240

Cards de resposta

Um tipo de resposta do cartão Dialogflow é enviado para LINE como um tipo de mensagem de modelo LINE.

Respostas rápidas

Um tipo de resposta rápida do Dialogflow é enviado para LINE como um tipo de mensagem de modelo LINE.

Respostas personalizadas de payload

Você pode enviar a maioria dos tipos de mensagem do LINE com uma resposta de payload personalizada.

Por exemplo, o payload personalizado a seguir fornece uma mensagem de modelo LINE:

{
  "type": "template",
  "altText": "this is a buttons template",
  "template": {
    "type": "buttons",
    "thumbnailImageUrl": "https://example.com/bot/images/image.jpg",
    "title": "Menu",
    "text": "Please select",
    "actions": [
      {
        "type": "postback",
        "label": "Buy",
        "data": "action=buy&itemid=123"
      },
      {
        "type": "postback",
        "label": "Add to cart",
        "data": "action=add&itemid=123"
      },
      {
        "type": "uri",
        "label": "View detail",
        "uri": "http://example.com/page/123"
      }
    ]
  }
}