Integrando o seu Watson Assistant em uma página no Facebook Messenger
Edit: Acompanhe o novo post onde eu e o Pedro H Castro abordamos novos meios de conectar o seu chatbot, feito com o Watson Assistant, no Facebook:
Sempre que criamos um novo chatbot no Watson Assistant pensamos em como podemos disponibilizar em algum canal de comunicação: Facebook, Slack, Twitter ou outro. Como costume, sempre ouço perguntas como:
“Como eu faço para colocar meu Chatbot no Facebook? Da muito trabalho para colocar? Não tem algo pronto que faça isso?”
E foi a partir dessas dúvidas que foi criada uma forma de integrar um workspace do Watson Assistant (Se ainda não conhece, clique no link) com uma página do Facebook.
Lembrete: este post irá mostrar como subir um chatbot em uma página no Facebook em ambiente de teste, onde apenas você poderá testar na página. No momento, o Facebook possui um novo processo de aprovação de chatbots, veja aqui.
Quais são os pré-requisitos?
- Ter uma conta no IBM Cloud
- Ter uma conta no Facebook
- Ter uma conta no Facebook for Developers
Configurando o serviço de Watson Assistant para criar um chatbot
O primeiro passo é criar o serviço do Watson Assistant no IBM Cloud. Depois, criar um novo workspace (caso você ainda não tenha criado) e começar a definir as Intenções, Entidades e os Diálogos. Você pode seguir este tutorial para criar um chatbot de pizza.
Lembre de guardar as credenciais do Watson Assistant. Usaremos o USERNAME, PASSWORD e WORKSPACE ID depois.
Crie uma página no Facebook e depois configure o Facebook Messenger
Crie uma página no Facebook para configurar um chatbot no Facebook Messenger. Se estiver com problemas, dê uma lida na documentação.
Acesse Facebook for Developers, clique em Meus aplicativos e selecione a opção Adicionar novo aplicativo.
Crie um novo app ID colocando um Nome de exibição, o qual nada mais é que uma identificação do seu app, e Email de contato.
Depois de criado, selecione o item Messenger, clicando o botão Configurar.
Desça a página até o item Geração de token, associe a página criada no Facebook para gerar um novo token. Ele será usado no passo seguinte.
Configurando o app com Watson
Acesse o repositório do Watson Assistant Facebook e aperte no botão azul Deploy to IBM Cloud. Ele irá subir uma nova aplicação na sua conta do IBM Cloud. Caso ainda não tenha uma conta, acesse o Console do IBM Cloud e crie a sua. Lembrando que você não precisa do cartão de crédito para criar uma nova conta.
Clique no botão Implementar e espere a plataforma configurar todo o ambiente.
Entre no Eclipse Orion Web IDE.
Clique no arquivo .env e coloque as credenciais, do Watson Assistant e do Facebook.
Clique no menu superior e aperte no botão + (mais) para adicionar as configurações de Launch da aplicação, assim como na imagem abaixo.
Aperte o botão Salvar e espere o término da configuração do ambiente.
Depois disso, aperte o botão PLAY para atualizar o projeto.
Aperte o botão de Abrir o app (ao lado do botão STOP) para visualizar a URL gerada do projeto (é possível alterar essa URL através da plataforma IBM Cloud). Grave a URL da sua aplicação mais o /facebook/receive. Usaremos ela no próximo passo.
https://<sua_url_gerada>.mybluemix.net/facebook/receive
Volte para a plataforma do Facebook for Developers e acesse as configurações do Messenger. No item Webhooks, clique no botão Configurar Webhooks. No campo URL de retorno de chamada, você irá colocar a URL da sua aplicação gerada, e no campo Verificar token você deve colocar "botkit_for_watson" (como ele será usado apenas uma vez, não houve necessidade de mudar). Por último, selecione os itens messages e messaging_postbacks. Clique no botão Verificar e salvar.
Para que o webhook receba os eventos da sua página, você deve inscrever o seu app na sua página. Para isso, você deve selecionar a página e clicar no botão Inscrever-se.
E pronto! Agora você tem chatbot na sua página do Facebook.
Lembrando que este é o primeiro passo para colocar o chatbot em produção. Deste modo, somente você conseguirá interagir com o chatbot.
No próximo post, vou ensinar como deixar o chatbot público. O Facebook possui um processo de submissão de novos chatbots e requer algumas informações adicionais da empresa, veja aqui.
Tutorial de como usar o Botkit com Watson em inglês.
Meu repositório do Github com o código usado neste post.
Até a próxima!