Pular para o conteúdo principal

Faça deploy do seu bot do Facebook Messenger com Python

Um guia passo a passo para fazer o deploy de um chatbot do Facebook Messenger com Python, usando Flask, requests e ngrok.
Atualizado 17 de set. de 2026  · 7 min lido

Explorar com IA

ChatGPTClaudePerplexity

Quando bem feito, interagir com um computador por meio da linguagem humana é incrivelmente poderoso — e também muito divertido. Dispositivos de Mensageria e de Voz são as próximas grandes plataformas, e a computação conversacional tem um papel importante na criação de experiências envolventes em realidade aumentada e virtual. Há vários desafios únicos ao construir esse tipo de programa, por exemplo: como deixar seu chatbot acessível para o mundo externo?

Neste tutorial, você vai passar pelo passo a passo para fazer o deploy de um chatbot no Facebook Messenger, que tem mais de 1 bilhão de usuários ativos. Com poucas linhas de código, dá para alcançar um público enorme.

São 3 etapas principais para concluir isso. Você precisa:

  • criar um servidor que escute mensagens do Facebook (usando flask)
  • definir uma função para enviar mensagens de volta aos usuários (usando requests)
  • encaminhar uma conexão https para sua máquina local (usando ngrok)

Se quiser saber mais sobre como transformar linguagem humana em instruções de máquina, confira o curso da DataCamp Building Chatbots in Python.

Observe que este post não cobre como fazer seu bot entender o que as pessoas dizem e responder de forma adequada. Para aprender mais sobre isso, vale a pena ver o Rasa NLU, o Rasa Core e o curso da DataCamp mencionado acima.

Chatbot em Python

Encapsule seu chatbot em um servidor http

O primeiro passo é criar um servidor http que escute as mensagens enviadas pelo Facebook, gere uma resposta para essa mensagem e, por fim, envie a resposta de volta ao usuário no Facebook. Vamos usar o flask para criar esse servidor. A ideia básica é a seguinte:

  • Criar um app flask que escute mensagens enviadas para localhost:5000/webhook. Quando mensagens são enviadas no Facebook, elas chegam como requisições http para essa URL.
  • A função listen() trata essas requisições http e verifica se contêm uma mensagem válida do Facebook
  • Se a mensagem for válida, a função get_bot_response() é chamada e a resposta é enviada de volta ao Facebook Messenger

Além disso, você vai criar uma função chamada verify_webhook() que lida com a autenticação inicial entre o Facebook e seu app.

O script final fica assim (salve como server.py):

from flask import Flask, request

app = Flask(__name__)

FB_API_URL = 'https://graph.facebook.com/v2.6/me/messages'
VERIFY_TOKEN = ''# <paste your verify token here>
PAGE_ACCESS_TOKEN = ''# paste your page access token here>"


def get_bot_response(message):
    """This is just a dummy function, returning a variation of what
    the user said. Replace this function with one connected to chatbot."""
    return "This is a dummy response to '{}'".format(message)


def verify_webhook(req):
    if req.args.get("hub.verify_token") == VERIFY_TOKEN:
        return req.args.get("hub.challenge")
    else:
        return "incorrect"

def respond(sender, message):
    """Formulate a response to the user and
    pass it on to a function that sends it."""
    response = get_bot_response(message)
    send_message(sender, response)


def is_user_message(message):
    """Check if the message is a message from the user"""
    return (message.get('message') and
            message['message'].get('text') and
            not message['message'].get("is_echo"))


@app.route("/webhook")
def listen():
    """This is the main function flask uses to 
    listen at the `/webhook` endpoint"""
    if request.method == 'GET':
        return verify_webhook(request)

    if request.method == 'POST':
        payload = request.json
        event = payload['entry'][0]['messaging']
        for x in event:
            if is_user_message(x):
                text = x['message']['text']
                sender_id = x['sender']['id']
                respond(sender_id, text)

        return "ok"

No script acima, as variáveis VERIFY_TOKEN e PAGE_ACCESS_TOKEN ainda não estão definidas — então você vai precisar configurá-las. O VERIFY_TOKEN pode ser qualquer string; ele funciona como uma espécie de senha para informar ao Facebook que este servidor quer receber mensagens. É uma boa ideia usar uma string longa e aleatória. Você pode gerar isso rapidamente executando openssl rand -base64 32 no terminal.

Não se preocupe com o PAGE_ACCESS_TOKEN por enquanto — já já você vai ver como obtê-lo!

Envie mensagens de volta aos usuários

Em seguida, você vai escrever uma função que envia uma resposta de volta ao Facebook Messenger usando a biblioteca Python requests. Em particular, você usará o método post(), que cria uma requisição HTTP POST. Uma requisição POST é a forma típica de enviar informações para um servidor.

Sua função deve ficar assim:

import requests

def send_message(recipient_id, text):
    """Send a response to Facebook"""
    payload = {
        'message': {
            'text': text
        },
        'recipient': {
            'id': recipient_id
        },
        'notification_type': 'regular'
    }

    auth = {
        'access_token': PAGE_ACCESS_TOKEN
    }

    response = requests.post(
        FB_API_URL,
        params=auth,
        json=payload
    )

    return response.json()

Exponha um endpoint https e conecte uma página do Facebook

A URL localhost:5000 só funciona para requisições criadas no mesmo computador em que o servidor está rodando. Então você precisa informar ao Facebook como alcançar seu servidor flask. Para isso, primeiro instale o ngrok.

Acesse esta página e instale a versão para o seu sistema operacional. Se você usa Mac e tem o homebrew, a forma mais rápida de instalar o ngrok é com brew cask install ngrok.

Inicie o servidor do ngrok no terminal com ngrok http 5000. Isso vai configurar um endpoint https que encaminha para sua máquina na porta 5000, por exemplo https://51b6b3fa.ngrok.io.

Atenção: se você encerrar o ngrok e reiniciar, essa URL vai mudar.

Crie um app e uma página no Facebook

O próximo passo é criar um app e uma página no Facebook. Há uma boa documentação do próprio Facebook, mas vamos passar pelos principais passos aqui.

Para criar o app, acesse aqui e

  • clique em My Apps -> Add a New App e informe um nome
  • você será redirecionado para o dashboard do app
  • em Products, encontre Add a Product e clique em Messenger -> Set Up

Para criar a página, você precisa:

  • ir nas configurações do Messenger, rolar até Token Generation e clicar no link para create a new page para o seu app

Depois de criar a página, volte às configurações de Token Generation e selecione essa página no menu suspenso. Copie o Page Access Token para o espaço de PAGE_ACCESS_TOKEN no server.py acima.

Inicie o servidor do seu bot

Agora que está tudo configurado, é hora de iniciar o servidor do seu chatbot! Em outra aba do terminal, execute

FLASK_APP=server.py flask run

Configure o webhook

Por fim, você precisa registrar seu webhook na página de desenvolvedores do Facebook.

  • Volte à aba Messenger em Products e, em Webhooks, clique em Setup Webhooks
  • Em Callback URL, informe sua URL do ngrok, por exemplo, https://51b6b3fa.ngrok.io/webhook. É importante que seu app flask esteja rodando neste momento, pois o verify_token() será chamado na etapa seguinte
  • No campo Verify Token, informe o valor que você definiu no arquivo server.py
  • Em Subscription Fields, garanta que messages e messaging_postbacks estejam marcados. Clique em Verify and Save para concluir a autenticação

Importante: volte em Products -> Messenger e, em Select a page to subscribe your webhook to the page events, selecione sua página e clique em Subscribe.

Pronto!

Seu bot agora está preparado para enviar e receber mensagens pelo Facebook Messenger. Neste momento, sua função get_bot_response() ainda é bem simples e não parece um chatbot de verdade! Para aprender tudo sobre como construir chatbots, confira o curso da DataCamp Building Chatbots in Python e o tutorial Building a Chatbot using Chatterbot in Python, além das bibliotecas em Python Rasa NLU e Rasa Core

Tópicos
Python
Ciência de dados

Saiba mais sobre Python

Curso

Introdução ao Python

4 h
7M
Domine os fundamentos da análise de dados com Python em quatro horas e explore pacotes populares.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

blog

Como aprender Python do zero em 2026: um guia completo

Descubra como aprender Python em 2026, suas aplicações e a demanda por habilidades em Python. Comece hoje sua jornada com nosso guia completo.
Matt Crabtree's photo

Matt Crabtree

15 min

Tutorial

Guia de torchchat do PyTorch: Configuração local com Python

Saiba como configurar o torchchat do PyTorch localmente com Python neste tutorial prático, que fornece orientação e exemplos passo a passo.

Tutorial

Desenvolvimento backend com Python: guia completo para iniciantes

Este guia completo ensina os fundamentos do desenvolvimento backend com Python. Aprenda conceitos básicos, frameworks e boas práticas para começar a criar aplicações web.
Oluseye Jeremiah's photo

Oluseye Jeremiah

15 min

Tutorial

Criando agentes LangChain para automatizar tarefas em Python

Um tutorial abrangente sobre a criação de agentes LangChain com várias ferramentas para automatizar tarefas em Python usando LLMs e modelos de bate-papo usando OpenAI.

Tutorial

Tutorial de como executar scripts Python

Saiba como executar um script Python a partir da linha de comando e também como fornecer argumentos de linha de comando ao seu script.
Aditya Sharma's photo

Aditya Sharma

10 min

Tutorial

Um guia para iniciantes na engenharia de prompts do ChatGPT

Descubra como fazer com que o ChatGPT forneça os resultados que você deseja, fornecendo a ele as entradas necessárias.
Matt Crabtree's photo

Matt Crabtree

6 min

Ver MaisVer Mais