Aprenda a criar um chatbot no Facebook

21 Comentários

Os chatbots estão na moda e há até quem diga que poderão fazer esquecer as aplicações tal como as conhecemos. A revolução dos chatbots já começou e o Pplware quer acompanhar de perto a evolução deste “novo mundo” de oportunidades.

Hoje ensinamos a criar um simples chatbot no Facebook com o Wit.ai e Heroku, através do node.js.



O que são chatbots?

Os chatbots não são nada mais que software que tenta “simular” um ser humano na conversação e interação com as pessoas. Este “novo” conceito pode ser aplicado aos mais diversos serviços/plataformas, tendo sempre como fonte uma boa base de conhecimento que pode ser criada com recurso à inteligência artificial.

Arquitetura a desenvolver

Basicamente, pretendemos que qualquer mensagem enviada através do Facebook seja reencaminhada para o Wit.ai e para a API (meteorologia) através do Heroku.

Os dados meteorológicos são obtido através de uma 3rd party API disponibilizada pela Yahoo.

Configurar o Wit.ai

O Wit.ai é uma plataforma para construção de chat bots que foi adquirida pelo Facebook após 18 meses da sua fundação. Para configurar o Wit.ai devem:

1) Criar uma conta no Wit.ai em https://wit.ai

2) Criar uma nova app

3) Criar uma história

Por enquanto vamos criar uma história de resposta rápida (sim/não)

  • Entrar na página “Stories”
  • Clicar no botão “Create a story”
  • No campo “User says” escrever “Olá”
  • No valor do “intent” colocar “greetings”
  • Clicar no botão “Bot sends”
  • No campo “The bot says…” escrever “Olá, gostas de falar com máquinas?”
  • Clicar no botão “Set quick replies”
  • No campo “Type a quick reply” escrever “Sim”, pressionar a tecla “Enter”, escrever “Não” e pressionar a tecla “Enter”
  • Clicar no botão “Bot sends”
  • Clicar em “Add new entity”, escrever “yes_no” e pressionar duas vezes seguidas na tecla “Enter”
  • No campo “Value” escrever “yes”
  • Clicar no botão “Bot sends”
  • No campo “The bot says…” escrever “Boa! Olha, em breve vou saber dizer o tempo.”
  • Clicar no botão “Não”
  • Clicar em “Add new entity” e selecionar a opção “yes_no”
  • No campo “Value” escrever “no”
  • Clicar no botão “Bot sends”
  • No campo “The bot says…” escrever “Ohh que pena :(“
  • Clicar no botão “Save Story”

4) Localizar e guardar o “Server Access Token”

  • Clicar no separador “Settings
  • Na secção “API Details” localizar o campo “Server Access Token
  • Guardar o token para ser usado mais tarde no Heroku

Configurar o Heroku

O Heroku é uma (PaaS – Platform as a Service) que suporta várias linguagens de programação tendo sido adquirida pela Salesforce.com em 2010.

1) Fazer o clone deste repositório para a máquina local

git clone https://github.com/SandroMiguel/messenger-bot-witai-tutorial witai_facebook

2) Entrar na pasta do projeto

cd witai_facebook

3) Instalar as dependências

npm install

4) Criar uma conta no Heroku em https://heroku.com

5) Enviar a aplicação para o Heroku

  • Efetuar o login no Heroku
heroku login
  • Criar uma aplicação no Heroku
heroku apps:create chatbot-sandro
  • Fazer o push do bot para o Heroku (deploy)
git push heroku master

  1. Definir o token do Wit.ai no Heroku
  • O token fornecido anteriormente no Wit.ai deve ser configurado no Heroku

NOTA: também é possível configurar as variáveis de ambiente no dashboard do Heroku através da página “Settings” clicando no botão “Reveal Config Vars”

heroku config:set WIT_TOKEN="F3PN6IUL574DXE3ENCBQQ4SWCYPQHILL"
  • Abrir a aplicação no Heroku
heroku open


O Heroku já comunica com o Wit.ai !!!

Configurar o Facebook

Vamos configurar o Messenger do Facebook para comunicar com o chat bot.

  1. Criar uma conta no Facebook Developers em https://developers.facebook.com
  2. Criar uma nova página no Facebook em https://www.facebook.com/pages/create

NOTA: Também se pode usar uma página criada anteriormente.

  • Criar uma nova app em https://developers.facebook.com/apps

  • Configurar a app do Facebook
  • Adicionar o produto “Facebook Messenger”
  • Configurar o Webhooks
    • Callback URL: https://your-heroku-app-name.herokuapp.com/webhooks (não esquecer do “webhooks” no final)
    • Verify Token: just_do_it
    • Selecionar a página em “Select a page to subscribe your webhook to the page events”

  1. Gerar o token da aplicação do Facebook
  • Clicar em “Settings”
  • Selecionar a página
  • Guardar o token para ser usado mais tarde no Heroku

  • Subscrever a página na secção “Webhooks”

  1. Definir o token da app do Facebook no Heroku
  • O token fornecido anteriormente no Facebook deve ser configurado no Heroku
heroku config:set WIT_TOKEN="F3PN6IUL574DXE3ENCBQQ4SWCYPQHILL"

Está tudo pronto para dizer olá ao chat bot!!!

Testar o chat bot

Caso a página do Facebook que foi criada não esteja pública, podemos adicionar um botão de conversação e testar o chat bot desta forma.

Este projeto é um fork de https://github.com/jw84/messenger-bot-witai-tutorial.

Comentários

21

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Cláudio Barbosa
    Cláudio Barbosa

    Não funciona em perfis normais?

    1. Avatar de Sandro Marques
      Sandro Marques

      Olá Cláudio, a resposta rápida é não. Até ao momento o Facebook limita a implementação dos chatbots apenas para páginas do Facebook.

      1. Avatar de Cláudio Barbosa
        Cláudio Barbosa

        Olá Sandro, obrigado pela resposta. Era interessante que funcionasse para perfis também, porque existe pessoal que usa o seu perfil para demonstrar trabalho.

        Conhece alguma solução para este caso?

        1. Avatar de Sandro Marques
          Sandro Marques

          “demonstrar trabalho”, como assim? Pode dar algum exemplo? Não digo que não exista mas eu não conheço nenhuma forma de implementar um chatbot no perfil do Facebook. Acabei de experimentar uma plataforma para criar chatbots (https://chatfuel.com/) e a primeira coisa que me pediu foi para escolher a página para fazer a ligação ou a possibilidade de criar uma nova.

          1. Avatar de Sergio
            Sergio

            Realmente só funciona para páginas, não para perfis. Mas nada impede de você criar um perfil profissional através de uma página. Foi o que eu fiz: http://fb.me/sergiodatake. Nesta página tenho um chatbot que recebe as mensagens, dá uma resposta automática e encaminha o conteúdo para meu email, para que eu responda durante o horário comercial.

          2. Avatar de Sergio
            Sergio

            Esqueci de comentar que fiz isto usando o BLiP: http://www.blip.ai.

          3. Avatar de Thiago Oliveira
            Thiago Oliveira

            O chatfuel é gratuito?

          4. Avatar de Sergio
            Sergio

            É gratuito sim.

        2. Avatar de Sergio
  2. Avatar de Utilizador
    Utilizador

    Excelente artigo, parabéns

  3. Avatar de Amilcar Alho
    Amilcar Alho

    Gosto muito do Heroku…!!! 😀 😀

  4. Avatar de Pedro
    Pedro

    Tanta complicação. O Telegram já incorpora Chatbots ao tempo… Mas ninguém passa cartão, infelizmente!

  5. Avatar de Telmo Guerreiro
    Telmo Guerreiro

    Parabens pelo artigo, mas fiquei com uma duvida:
    Em termos de privacidade das conversas? Uma vez que temos mensagens a passar pelos pipelines destas 3rd parties….ha motivo para ficar de pe atras?

    1. Avatar de Sandro Marques
      Sandro Marques

      Olá Telmo. Os chatbots são implementados nas infraestruturas já existentes e funcionam como se fossem uma aplicação, só que numa abordagem diferente. Por exemplo, o Facebook obriga a que todas as comunicações sejam feitas com o protocolo https, ou seja, encriptadas. O problema de segurança pode existir noutro lado (ex: bugs no código) mas não nas comunicações. Para concluir, só quando estamos desligados da rede é que estamos seguros…e mesmo assim tenho algumas dúvidas 🙂

      1. Avatar de Telmo Guerreiro
        Telmo Guerreiro

        Obrigado Sandro! Bom trabalho

  6. Avatar de Nuno B.
    Nuno B.

    Muito bom artigo, mas qual é limitação destes chabot? Comunica com o utilizador somente usando frases simples ou já consegue ter alguma complexidade na comunicação?

    1. Avatar de Pedro Pinto

      Coisa simples…quase e apenas para fazer ums introdução aos chatbots. Estamos a preparar outros artigos.

  7. Avatar de Ivo Santos
    Ivo Santos

    Fiz tudo como indicado mas o bot simplesmente não responde…

    1. Avatar de Sergio
      Sergio

      Ivo, você usou o mesmo usuário para publicar o bot na página e também para fazer os testes?

  8. Avatar de K. Moura
    K. Moura

    Eu fiz e deu tudo certo, mas agr to com um pequeno problema.
    O botão teste funciona muito bem, mas quando um amigo manda uma mensagem nao funciona.
    Queria saber pq só funciona no botão de teste