Construa os bots Ai WhatsApp com python puro
Este guia o levará ao processo de criação de um bot do WhatsApp usando a META (anteriormente Facebook) Cloud API com Pure Python e Flask particular. Também integraremos eventos do Webhook para receber mensagens em tempo real e usar o OpenAI para gerar respostas de IA. Para obter mais informações sobre a estrutura do aplicativo Flask, você pode consultar esta documentação.
Pré -requisitos
- Uma conta de meta desenvolvedor - se você não tiver uma, pode criar uma conta de meta desenvolvedor aqui.
- Um aplicativo de negócios - se você não tiver um, pode aprender a criar um aplicativo de negócios aqui. Se você não vir uma opção para criar um aplicativo de negócios, selecione outros > Next > Business .
- Familiaridade com Python para seguir o tutorial.
Índice
- Construa os bots Ai WhatsApp com python puro
- Pré -requisitos
- Índice
- Comece
- Etapa 1: Selecione números de telefone
- Etapa 2: Envie mensagens com a API
- Etapa 3: Configure webhooks para receber mensagens
- Inicie seu aplicativo
- Inicie Ngrok
- Integrar o whatsapp
- Testando a integração
- Etapa 4: Entendendo a segurança da webhook
- Solicitações de verificação
- Validando solicitações de verificação
- Validando cargas úteis
- Etapa 5: Saiba sobre a API e construa seu aplicativo
- Etapa 6: integrar a IA no aplicativo
- Etapa 7: adicione um número de telefone
- Datalumina
- Tutoriais
Comece
- Visão geral e configuração : comece sua jornada aqui.
- Localize seus bots : seus bots podem ser encontrados aqui.
- Documentação da API do WhatsApp : Familiarize -se com a documentação oficial.
- Guia útil : Aqui está um guia baseado em Python para enviar mensagens.
- Docos da API para enviar mensagens : Confira esta documentação.
Etapa 1: Selecione números de telefone
- Verifique se o WhatsApp é adicionado ao seu aplicativo.
- Você começa com um número de teste que pode usar para enviar mensagens para até 5 números.
- Vá para a configuração da API e localize o número de teste do qual você estará enviando mensagens.
- Aqui, você também pode adicionar números para enviar mensagens para. Digite seu próprio número do WhatsApp .
- Você receberá um código no seu telefone via WhatsApp para verificar seu número.
Etapa 2: Envie mensagens com a API
- Obtenha um token de acesso de 24 horas na seção Acesso à API.
- Ele mostrará um exemplo de como enviar mensagens usando um comando
curl que pode ser enviado do terminal ou com uma ferramenta como o Postman. - Vamos convertê -lo em uma função python na biblioteca de solicitações.
- Crie um
.env arquivos com base no example.env e atualize as variáveis necessárias. Exemplo de vídeo aqui. - Você receberá uma mensagem "Hello World" (espere um atraso de 60 a 120 segundos para a mensagem).
Criando um acesso que funciona mais de 24 horas
- Crie um usuário do sistema no nível da conta da Meta Business.
- Na página dos usuários do sistema, configure os ativos para o usuário do seu sistema, atribuindo seu aplicativo WhatsApp com controle total. Não se esqueça de clicar no botão Salvar alterações.
- Veja a etapa 1 aqui
- Veja a Etapa 2 aqui
- Agora clique em
Generate new token e selecionar o aplicativo e, em seguida, escolha quanto tempo o token de acesso será válido. Você pode escolher 60 dias ou nunca expirar. - Selecione todas as permissões, pois eu estava enfrentando erros quando selecionei apenas os do WhatsApp.
- Confirme e copie o token de acesso.
Agora temos que encontrar as seguintes informações no painel do aplicativo :
- App_id : "<your-whatsapp-abusiness-app_id>" (encontrado no painel do aplicativo)
- App_secret : "<your-whatsapp-abusiness-app_secret>" (encontrado no painel do aplicativo)
- Receptor_waid : "" (este é o seu ID do WhatsApp, ou seja, número de telefone. Verifique se ele é adicionado à conta, conforme mostrado na mensagem de teste de exemplo.)
- Versão : "V18.0" (a versão mais recente da API do Meta Graph)
- Access_Token : "" (criado na etapa anterior)
Você só pode enviar uma mensagem de tipo de modelo como sua primeira mensagem para um usuário. É por isso que você deve enviar uma resposta antes de continuarmos. Levei 2 horas para descobrir isso.
Etapa 3: Configure webhooks para receber mensagens
Observe que esta é a parte mais difícil deste tutorial.
Inicie seu aplicativo
- Faça com que você tenha uma instalação ou ambiente Python e instale os requisitos:
pip install -r requirements.txt - Execute seu aplicativo de frasco localmente executando o run.py
Inicie Ngrok
As etapas abaixo são tomadas da documentação do NGROK.
Você precisa de um domínio ngrok estático porque a Meta valida seu domínio e certificado NGROK!
Depois que seu aplicativo estiver sendo executado com sucesso no localhost, vamos colocá -lo na Internet com segurança usando o NGrok!
- Se você ainda não é um usuário do NGROK, basta inscrever -se no NGROK gratuitamente.
- Baixe o agente ngrok.
- Vá para o painel NGROK, clique em seu AuthToken e copie seu AuthToken.
- Siga as instruções para autenticar seu agente ngrok. Você só precisa fazer isso uma vez.
- No menu esquerdo, expanda a borda da nuvem e clique em domínios.
- Na página de domínios, clique em + criar domínio ou + novo domínio. (Aqui todos podem começar com um domínio livre)
- Inicie o NGrok executando o seguinte comando em um terminal na área de trabalho local:
ngrok http 8000 --domain your-domain.ngrok-free.app
- O NGROK exibirá um URL em que o aplicativo do seu localhost é exposto à Internet (copie este URL para uso com meta).
Integrar o whatsapp
No painel do Meta App, vá para o WhatsApp> Configuração e clique no botão Editar.
- No pop-up de url de retorno de chamada do Edit Webhook, digite o URL fornecido pelo agente NGROK para expor seu aplicativo à Internet no campo URL de retorno de chamada, com/webhook no final (por exemplo, https://myexample.ngrok-free.app/webhook ).
- Digite um token de verificação. Esta string é configurada por você quando você cria seu endpoint webhook. Você pode escolher qualquer string que desejar. Certifique -se de atualizar isso na sua variável de ambiente
VERIFY_TOKEN . - Depois de adicionar um webhook ao WhatsApp, o WhatsApp enviará uma solicitação de postagem de validação ao seu aplicativo através do NGROK. Confirme o aplicativo localhost recebe a solicitação de validação e logs
WEBHOOK_VERIFIED no terminal. - Voltando à página de configuração, clique em Gerenciar.
- No pop -up Webhook Fields, clique em Inscrever -se no campo Mensagens . Dica: você pode se inscrever em vários campos.
- Se o seu aplicativo Flask e NGrok estiverem em execução, você poderá clicar em "Teste" ao lado de mensagens para testar a assinatura. Você recebe uma mensagem de teste na caixa superior. Se for esse o caso, seu webhook será configurado corretamente.
Testando a integração
Use o número de telefone associado ao seu produto do WhatsApp ou use o número de teste que você copiou antes.
- Adicione esse número aos contatos do seu aplicativo WhatsApp e envie uma mensagem para este número.
- Confirme o aplicativo localhost recebe uma mensagem e registra cabeçalhos e corpo no terminal.
- Teste se o bot responde de volta a você na parte superior.
- Agora você integrou com sucesso o bot! ?
- Agora é hora de construir coisas legais com isso com isso.
Etapa 4: Entendendo a segurança da webhook
Abaixo estão algumas informações da API da Meta Webhooks Docs sobre verificação e segurança. Ele já está implementado no código, mas você pode fazer referência a ele para entender melhor o que está acontecendo em segurança.py
Solicitações de verificação
Fonte
Sempre que você configurar o produto WebHooks no painel do seu aplicativo, enviaremos uma solicitação GET para o URL do seu terminal. As solicitações de verificação incluem os seguintes parâmetros de sequência de consulta, anexados ao final do seu URL do terminal. Eles vão parecer algo assim:
GET https://www.your-clever-domain-name.com/webhook?
hub.mode=subscribe&
hub.challenge=1158201444&
hub.verify_token=meatyhamhock
O verificado_token, meatyhamhock no caso deste exemplo, é uma string que você pode escolher. Não importa o que seja enquanto você armazena na variável de ambiente VERIFY_TOKEN .
Validando solicitações de verificação
Fonte
Sempre que seu terminal recebe uma solicitação de verificação, ele deve:
- Verifique se o valor hub.Verify_Token corresponde à string que você define no campo Verificar token ao configurar o produto Webhooks no painel do aplicativo (você ainda não configurou essa sequência de token).
- Responda com o valor Hub.Challenge.
Validando cargas úteis
Fonte
O Whatsapp assina todas as cargas úteis de notificação de eventos com uma assinatura SHA256 e inclua a assinatura no cabeçalho da sinatura X-HUB-signo da solicitação, precedido com sha256 =. Você não precisa validar a carga útil, mas deveria.
Para validar a carga útil:
- Gere uma assinatura SHA256 usando a carga útil e o segredo do aplicativo do seu aplicativo.
- Compare sua assinatura com a assinatura no cabeçalho X-HUB-Signature-256 (tudo após SHA256 =). Se as assinaturas corresponderem, a carga útil será genuína.
Etapa 5: Saiba sobre a API e construa seu aplicativo
Revise a documentação do desenvolvedor para aprender como criar seu aplicativo e comece a enviar mensagens. Veja documentação.
Etapa 6: integrar a IA no aplicativo
Agora que temos uma conexão de ponta a ponta, podemos tornar o bot um pouco mais inteligente do que apenas gritar para nós no caso superior. Tudo o que você precisa fazer é criar sua própria função generate_response() em whatsapp_utils.py.
Se você deseja um exemplo de cortador de biscoitos para integrar a API do OpenAI Assistrans com uma ferramenta de recuperação, siga estas etapas.
- Assista a este vídeo: tutorial de assistentes de abertura
- Crie seu próprio assistente com
OPENAI_API_KEY OpenAI e OPENAI_ASSISTANT_ID suas variáveis de ambiente. - Forneça ao seu assistente dados e instruções
- Atualize o OpenAI_Service.py para o seu caso de uso.
- Importar
generate_reponse para whatsapp_utils.py - Atualizar
process_whatsapp_message() com a função new generate_reponse() .
Etapa 7: adicione um número de telefone
Quando você estiver pronto para usar seu aplicativo para um caso de uso de produção, você precisa usar seu próprio número de telefone para enviar mensagens para seus usuários.
Para começar a enviar mensagens para qualquer número do WhatsApp, adicione um número de telefone. Para gerenciar as informações da sua conta e o número de telefone, consulte a página de visão geral. e os documentos do WhatsApp.
Se você deseja usar um número que já está sendo usado no cliente ou aplicativo de negócios do WhatsApp, precisará migrar totalmente esse número para a plataforma de negócios. Depois que o número for migrado, você perderá o acesso ao cliente ou aplicativo de negócios do WhatsApp. Consulte Migrar o número do WhatsApp existente para uma conta comercial para obter informações.
Depois de escolher seu número de telefone, você deve adicioná -lo à sua conta comercial do WhatsApp. Consulte Adicionar um número de telefone.
Ao lidar com a API de negócios do WhatsApp e querer experimentar sem afetar seu número pessoal, você tem algumas opções:
- Compre um novo cartão SIM
- Números de telefone virtuais
- Telefones de Sim Dual
- Use um dispositivo diferente
- Serviços de números temporários
- Dispositivos dedicados para desenvolvimento
Recomendação : Se isso for para um objetivo mais prolongado ou profissional, é aconselhável usar um serviço de número de telefone virtual ou comprar um novo cartão SIM para um dispositivo dedicado. Para testes rápidos, um número temporário pode ser suficiente, mas sempre seja cauteloso em relação à segurança e privacidade. Lembre -se de que, uma vez que um número esteja associado à API do WhatsApp Business, ela não pode ser usada com o WhatsApp regular em um dispositivo, a menos que você o desative a partir da API de negócios e reverijá -lo no dispositivo.
Datalumina
Este documento é fornecido a você por Datalumina. Ajudamos analistas de dados, engenheiros e cientistas a lançar e escalar um negócio de freelancer de sucesso - US $ 100 mil /ano, projetos divertidos, clientes felizes. Se você quiser aprender mais sobre o que fazemos, pode visitar nosso site e assinar nossa newsletter. Sinta -se à vontade para compartilhar este documento com seus amigos e colegas de dados.
Tutoriais
Para tutoriais em vídeo, visite o canal do YouTube: youtube.com/@@daveebbelaar.