Como enviar uma foto no WhatsApp usando o Twilio e Python

April 14, 2021
Escrito por
Diane Phan
Twilion
Revisado por

Como enviar uma foto no WhatsApp usando o Twilio e Python

API do WhatsApp Business do Twilio é um serviço eficiente e fácil de usar que possibilita a comunicação com os usuários no popular app de mensagens.

Neste artigo, vamos guiá-lo sobre como você pode desenvolver um programa funcional em Python para enviar uma imagem a um usuário pelo WhatsApp.

Console Twilio para WhatsApp mostrando uma imagem cuja mensagem diz: 'check out this owl!' (veja esta coruja!)

Pré-requisitos

Para seguir este tutorial, será necessário cumprir os seguintes requisitos:

O sandbox da Twilio para WhatsApp

O Twilio fornece uma sandbox para WhatsApp, em que você pode facilmente desenvolver e testar seu aplicativo. Depois que seu aplicativo estiver finalizado, você poderá solicitar o acesso de produção para o número de telefone da Twilio, que exige aprovação pelo WhatsApp.

Nesta seção, você conectará seu smartphone ao sandbox. No menu do Console da Twilio, selecione Messaging (Mensagens) e em seguida selecione Try it Out (Experimentar) na barra lateral. Abra a seção do WhatsApp. A página da sandbox do WhatsApp mostrará o número da sandbox atribuído à sua conta e um código de ingresso.

Configuração da sandbox do WhatsApp

Para ativar a sandbox do WhatsApp em seu smartphone, envie uma mensagem pelo WhatsApp com o código fornecido para o número atribuído à sua conta. O código começa com a palavra "join", seguida por uma frase de duas palavras gerada aleatoriamente.

Logo após enviar a mensagem, você receberá uma resposta da Twilio indicando que seu número de celular está conectado ao sandbox e, portanto, já pode começar a enviar e receber mensagens.

Se pretende testar seu aplicativo com outros smartphones, repita o processo de cadastro do sandbox com cada um deles.

Configuração

Nesta seção, você vai configurar um novo projeto em Python. Para manter a organização, abra um terminal ou prompt de comando, encontre um local adequado e crie um novo diretório onde o projeto que você está prestes a criar será armazenado:

mkdir python-whatsapp-pic
cd python-whatsapp-pic

Como instalaremos alguns pacotes Python para esse projeto, precisamos criar um ambiente virtual.

Se estiver usando um sistema Unix ou MacOS, abra um terminal e digite os seguintes comandos:

$ python -m venv venv
$ source venv/bin/activate
(venv) $ pip3 install twilio

Se estiver em uma máquina com Windows, digite os seguintes comandos em uma janela de prompt:

$ python -m venv venv
$ source venv\bin\activate
(venv) $ pip3 install twilio

Vamos usar o pacote python-twilio para enviar mensagens pelo serviço do Twilio.

Autenticação nos serviços da Twilio

Precisamos armazenar com segurança algumas credenciais importantes que serão usadas para autenticação no serviço da Twilio.

Você pode obter as credenciais usando TWILIO_ACCOUNT_SID e TWILIO_AUTH_TOKEN que se aplicam à sua conta do Twilio no Console da Twilio:

Credenciais da conta da Twilio

Depois de localizar o SID da conta e o token de autenticação, vamos definir variáveis de ambiente digitando os seguintes comandos no seu terminal:

export TWILIO_ACCOUNT_SID=<your account SID>
export TWILIO_AUTH_TOKEN=<your auth token>

Se estiver seguindo este tutorial em um computador com Windows, substitua export por set nos comandos acima.

Envie uma mensagem de imagem com a Twilio

Crie um arquivo no diretório do projeto chamado app.py e, depois, copie e cole nele o código a seguir:

import os
from twilio.rest import Client

account_sid = os.environ['TWILIO_ACCOUNT_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']
client = Client(account_sid, auth_token)

from_whatsapp_number = 'whatsapp:+<YOUR_WHATSAPP_SANDBOX_PHONE_NUMBER>'
to_whatsapp_number = 'whatsapp:+<YOUR_WHATSAPP_PHONE_NUMBER>'

message = client.messages.create(body='Check out this funny picture!',
                       media_url='https://raw.githubusercontent.com/dianephan/flask_upload_photos/main/UPLOADS/DRAW_THE_OWL_MEME.png',
                       from_=from_whatsapp_number,
                       to=to_whatsapp_number)

print(message.sid)

O objeto client inicializa um cliente Twilio usando as variáveis TWILIO_ACCOUNT_SID e TWILIO_AUTH_TOKEN definidas acima. Substitua <YOUR_WHATSAPP_SANDBOX_PHONE_NUMBER> e <YOUR_WHATSAPP_PHONE_NUMBER> pelos números reais, usando o formato E.164.

Seu programa Python cria uma nova instância message do recurso Message fornecido pelo API de mensagens da Twilio para WhatsApp, para enviar uma mensagem de WhatsApp ao seu número de telefone pessoal a partir do número da sandbox da Twilio. Certifique-se de substituir esses espaços reservados pelos valores apropriados.

A instância message também permite incluir o corpo de uma mensagem e o URL de uma imagem que você quer enviar. Fique à vontade para alterar para outro URL de imagem.

Depois que a mensagem for enviada, o SID da mensagem será impresso no terminal para referência.

Em alguns segundos, você verá um ping do WhatsApp no telefone pessoal enviado diretamente do seu computador!

O que vem a seguir para enviar uma imagem no WhatsApp com Python?

Parabéns por escrever um arquivo curto em Python e usar a linha de comando para enviar uma imagem rapidamente para seu dispositivo habilitado para WhatsApp! Foi tudo tão rápido! Acredita que isso é possível?

Você pode fazer muito mais com a Twilio e o código sem precisar pegar seu telefone. Aqui estão alguns outros projetos de mídia do WhatsApp que você pode conferir:

Fale sobre os projetos que você está criando com o WhatsApp, Twilio e Python entrando em contato comigo por e-mail!

Este artigo foi traduzido do original "How to Send a Picture on WhatsApp Using Twilio and Python". Enquanto melhoramos nossos processos de tradução, adoraríamos receber seus comentários em help@twilio.com - contribuições valiosas podem render brindes da Twilio.