Bem-vindo ao mundo energético de mensagens multimídia via API! Aqui está sua chance de revolucionar seus chats do WhatsApp enviando não apenas texto, mas toda uma gama de tipos de mídia. Pense em deixar suas mensagens mais atrativas com GIFs legais, documentos importantes ou até vídeos envolventes diretamente do seu computador!
Este tutorial não é só para gurus de tecnologia. Quer você seja novo em programação ou já tenha alguma experiência, você descobrirá como apenas algumas linhas de código podem dar vida às suas mensagens. Estamos falando de tornar suas conversas mais ricas e coloridas, transformando cada mensagem em uma experiência.
Pronto para dar um toque especial aos seus chats e se conectar com seu público de uma forma totalmente nova? Vamos mergulhar nesta aventura multimídia e ver como é simples fazer suas mensagens se destacarem!
🤩 🤖 Wassenger é uma plataforma completa de comunicação e solução de API para WhatsApp. Explore mais de 100+ casos de uso de API e automatize qualquer coisa no WhatsApp inscrevendo-se para um teste gratuito e comece em minutos**!**
Neste tutorial, você aprenderá como enviar mensagens multimídia para números de telefone e listas de chats em grupo usando a API.
Um arquivo de mídia pode ser qualquer um dos seguintes: imagens (JPEG, PNG, WEBP), vídeos (MP4, 3GPP), áudios (MP3, OGG, MP4, ACC), gifs (MP4) e documentos (PDF, PPT, PPTX, DOCX, DOC, ZIP, RAR, outros tipos binários).
Se você precisa enviar mensagens a partir de código, pode usar qualquer linguagem de programação que consiga fazer requisições HTTPS para a API. Abaixo você encontrará o testador de API ao vivo com exemplos de código prontos para uso em várias linguagens de programação.
Requisitos
- Ter um número WhatsApp já vinculado à plataforma e online.
- Número de telefone do destinatário com prefixo internacional no formato E164. Exemplo:
+12345678900. Valide o formato do número aqui.
Endpoints da API
Neste tutorial utilizaremos o seguinte endpoint da API:
Novidade! Agora você pode enviar mensagens de mídia em uma única requisição de API passando a URL remota onde o arquivo está armazenado. Clique aqui para testar
Fazer upload do arquivo
Para enviar um arquivo como mensagem multimídia, neste caso, um arquivo de imagem, você deve primeiro fazer o upload do arquivo para a plataforma.
Você pode enviar o arquivo usando os seguintes métodos via API:
- URL remota usando JSON com um campo
urlcom a URL publicamente acessível para download do arquivo (recomendado). - Form data (
multipart/form-data) usando o campofilecom o conteúdo do arquivo. - Dados binários brutos fazendo upload do conteúdo do arquivo como um stream de dados com o MIME type apropriado no cabeçalho Content-Type, por exemplo:
image/jpeg,application/pdf.
Neste tutorial, cobriremos os dois primeiros métodos de upload de arquivos.
Enviar o arquivo permite que o sistema valide e armazene o arquivo apenas uma vez, evitando o custo de upload e processamento cada vez que uma mensagem de mídia é entregue, e assim melhorando a velocidade de entrega da mensagem e simplificando a integração com a API.
Observe que o arquivo enviado será armazenado na plataforma por 90 dias por padrão, portanto na maioria dos casos você deve enviar o arquivo apenas uma vez. Opcionalmente, você também pode configurar por quanto tempo o arquivo deve ser armazenado na plataforma definindo um tempo de expiração personalizado, para mais detalhes consulte a documentação da API. Por padrão, sua conta tem 10GB de capacidade de armazenamento de arquivos na nuvem.
Fazer upload do arquivo usando uma URL remota
Você pode enviar qualquer arquivo para a plataforma simplesmente especificando a URL pública de onde baixar o arquivo.
Caso a URL não seja publicamente acessível, retorne um status HTTP inválido (>=400) ou retorne conteúdo não binário, como HTML ou texto, a API retornará um erro.
Target API URL (POST)
https://api.wassenger.com/v1/files
Cabeçalhos HTTPS obrigatórios
Content-Type: application/json
Token: $API-TOKEN
Corpo da requisição em formato JSON
{
"url": "https://picsum.photos/seed/picsum/600/400"
}
Alternativamente, você também pode especificar campos opcionais ao enviar o arquivo, como um tempo de expiração personalizado, identificador de referência ou um nome de arquivo personalizado.
{
"url": "https://picsum.photos/seed/picsum/600/400",
"expiration": "1d",
"filename": "custom-filename.jpg",
"reference": "Optional reference ID"
}
Obter o ID do arquivo a partir da resposta da API
Se o arquivo for corretamente enviado para a plataforma, a API retornará uma resposta válida em formato JSON como esta:
[
{
"id": "[Redacted ID]",
"format": "native",
"filename": "sample.jpg",
"size": 53697,
"mime": "image/jpeg",
"ext": "jpeg",
"kind": "image",
"sha2": "[Redacted Hash]",
"tags": [],
"status": "active",
"mode": "default",
"createdAt": "2021-05-08T22:49:50.954Z",
"expiresAt": "2021-09-06T22:49:50.949Z"
}
]
Importante: Do JSON de resposta você deve obter o campo id com um valor, por exemplo 06248ed01a7a65946c0701, que representa o ID único do arquivo que usaremos posteriormente para enviar o arquivo como mensagem de mídia em uma requisição API separada.
Fazer upload do arquivo usando multipart form data
Você pode enviar qualquer arquivo para a plataforma usando o mecanismo tradicional de multipart form data amplamente usado por navegadores web para enviar diferentes tipos de conteúdo, incluindo arquivos, para um servidor remoto.
Aqui você pode aprender mais sobre como funciona o upload multipart form.
Target API URL (POST)
https://api.wassenger.com/v1/files
Cabeçalhos HTTPS obrigatórios
Content-Type: multipart/form-data
Token: $API-TOKEN
Corpo da requisição
Diferentemente do upload baseado em JSON, neste caso precisamos confiar em um mecanismo mais complexo baseado no cliente HTTP que estamos usando, que nos ajudará a compor os campos do formulário de acordo com a especificação multipart.
Dependendo da linguagem de programação ou do software cliente HTTP que você estiver usando, o processo pode variar. Para simplificar, destacaremos as ferramentas mais populares, como Postman, e linguagens de programação populares.
O requisito principal é definir o campo file no formulário de dados, caso contrário, a API retornará um erro pois esse campo é obrigatório.
🤩 🤖 Wassenger é uma plataforma completa de comunicação e solução de API para WhatsApp. Explore mais de 100+ casos de uso de API e automatize qualquer coisa no WhatsApp inscrevendo-se para um teste gratuito e começar em minutos**!**
Fazer upload do arquivo pelo seu navegador web
Você pode enviar arquivos manualmente com facilidade para a plataforma a partir do console web sem instalar nenhum software:
Para upload automatizado de arquivos, veja as opções alternativas abaixo.
Fazer upload do arquivo usando cURL
cURL é um cliente HTTP de linha de comando popular e útil.
Você pode enviar arquivos facilmente da linha de comando usando o seguinte comando, onde path/to/image.jpg deve representar o caminho do arquivo que você quer enviar do seu disco local:
curl \
-F file=@path/to/image.jpg \
-H 'Token: $API-TOKEN' \
https://api.wassenger.com/v1/files
Fazer upload do arquivo usando Postman
Postman é uma ferramenta versátil e prática para teste e depuração HTTP.
Seguindo este tutorial simples, você pode enviar arquivos usando o Postman, substituindo a URL de destino pela da API.
Explore o tutorial do Postman aqui
Fazer upload do arquivo usando código
Explore como usar o código no seu navegador sem instalar nenhum software.
Além disso, você pode encontrar diferentes linguagens que pode testar em Replit.com:
# Requires to install requests package:
# Run: pip install requests
import requests
# Customize the local path of the file to upload
filepath = '/path/to/image.jpg'
# API key required in order to authenticate the upload
apikey = '$API_KEY'
# Read file to upload
files = {'file': open(filepath, 'rb')}
# Upload file
response = requests.post('https://api.wassenger.com/v1/files', files=files)
if response.status_code >= 400:
print('Request failed with invalid status:', response.status_code)
else:
json = response.json()
file_id = json[0]['id']
print('File uploaded successfully with ID:', file_id)
// Customize the local path of the file to upload
$filepath = '/path/to/image.jpg';
// API key required in order to authenticate the upload
$apikey = '$API_KEY';
// Upload file
$upload = curl_init();
curl_setopt_array($upload, array(
CURLOPT_URL => 'https://api.wassenger.com/v1/files',
CURLOPT_HTTPHEADER => array(
"Token: $apikey"
),
CURLOPT_POSTFIELDS => array(
'file' => new CURLFile($filepath)
),
CURLOPT_POST => TRUE,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE
);
$response = curl_exec($upload);
if(curl_errno($ch) {
echo("Request failed");
} else if(curl_getinfo($ch, CURLINFO_HTTP_CODE) >= 400) {
echo("Invalid request or unsupported file to upload");
} else {
$json = json_decode($response, true);
$file_id = $json[0]['id'];
echo("File uploaded successfully with ID: $file_id");
}
// Requires to install pecl_http package
// Run: pecl install pecl_http
// More information: https://pecl.php.net/package/pecl_http/3.2.0
$client = new http\Client;
$request = new http\Client\Request;
// Customize the local path of the file to upload
$filepath = '/path/to/image.jpg';
// API key required in order to authenticate the upload
$apikey = '$API_KEY';
// Prepare request
$body = new http\Message\Body;
$body->addForm(null, [
[
'name' => 'file',
'type' => null,
'file' => $filename,
'data' => null
]
]);
$request->setRequestUrl('https://api.wassenger.com/v1/files');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setQuery(new http\QueryString([
'reference' => 'optional-reference-id'
]));
$request->setHeaders([
'Token' => $apikey
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
if($response->getResponseCode() >= 400) {
echo("Invalid request or unsupported file to upload");
} else {
$body = json_decode($response->getBody()->toString());
$file_id = $json[0]['id'];
echo("File uploaded successfully with ID: $file_id");
}
package main
import(
"net/http"
"os"
"bytes"
"path"
"path/filepath"
"mime/multipart"
"io"
"encoding/json"
)
// API key required in order to authenticate the upload
const apiKey = "$API_KEY"
func main() {
# Customize the local path of the file to upload
fileName:= "path/to/image.jpg"
fileDir, _:= os.Getwd()
filePath:= path.Join(fileDir, fileName)
file, _:= os.Open(filePath)
defer file.Close()
body:= &bytes.Buffer{}
writer:= multipart.NewWriter(body)
part, _:= writer.CreateFormFile("file", filepath.Base(file.Name()))
io.Copy(part, file)
writer.Close()
r, _:= http.NewRequest("POST", "https://api.wassenger.com/v1/files", body)
r.Header.Add("Token", apiKey)
r.Header.Add("Content-Type", writer.FormDataContentType())
client:= &http.Client{Timeout: 90 * time.Second}
response, err:= client.Do(r)
if err != nil {
fmt.Printf("Request failed with an error: %s", err.Error())
return
}
if(response.StatusCode >= 400) {
fmt.Printf("Request failed with response status: %d", response.StatusCode)
return
}
body:= []struct{
Id string `json:"id"`
}{}
defer response.Body.Close()
err:= json.NewDecoder(response.Body).Decode(&body)
if err != nil {
fmt.Printf("Failed to decode JSON: %s", err.Error())
return
}
fileId:= body[0].Id
fmt.Printf("File uploaded successfully with ID:", fileId)
}
RestClient restClient = new RestClient("https://api.wassenger.com");
RestRequest restRequest = new RestRequest("/v1/files");
restRequest.Method = Method.POST;
restRequest.AddHeader("Token", "$API_KEY");
restRequest.AddHeader("Content-Type", "multipart/form-data");
restRequest.AddFile("file", "/path/to/image.jpg");
var response = restClient.Execute(restRequest);
var json = JsonConvert.DeserializeObject(response.Content);
var fileId =(string)json[0]["id"];
Console.WriteLine("File uploaded successfully with ID: {0}", fileId);
require 'net/http/post/multipart'
url = URI.parse('https://api.wassenger.com/v1/files')
File.open("/path/to/image.jpg") do |image|
req = Net::HTTP::Post::Multipart.new url.path, "file" => UploadIO.new(image, "image/jpeg", "image.jpg")
req['Token'] = "API_KEY"
res = Net::HTTP.start(url.host, url.port) do |http|
http.request(req)
end
end
List<File> = Unirest.post("https://api.wassenger.com/v1/files")
.header("Token", "API_KEY")
.field("file", new File("/path/to/image.jpg"))
.getBody()
🤩 🤖 Wassenger é uma plataforma completa de comunicação e solução de API para WhatsApp. Explore mais de 100+ casos de uso de API e automatize qualquer coisa no WhatsApp inscrevendo-se para um teste gratuito e começar em minutos**!**
Teste ao vivo o upload de arquivo usando a API
Explore nosso testador de API ao vivo
Enviar mensagens de mídia para um número de telefone
Enviar uma nova mensagem de mídia via API é fácil, você só precisa saber o número de telefone alvo no formato E164 e o ID do arquivo enviado (24 caracteres hexadecimais) que você pode obter na lista de arquivos enviados aqui ou pela lista de arquivos enviados via API.
Você pode enviar mensagens para qualquer número de telefone no mundo que possua conta no WhatsApp, não é necessário adicionar o número como contato na agenda do seu dispositivo móvel.
Preparar a requisição
Target API URL (POST)
https://api.wassenger.com/v1/messages
Cabeçalhos HTTPS obrigatórios
Content-Type: application/json
Token: $API_KEY
Corpo da requisição em formato JSON
{
"phone": "+12345678900",
"message": "This is a media message example 😀",
"media": {
"file": "UPLOADED FILE ID GOES HERE"
}
}
Agora você pode enviar a mensagem de mídia via API.
Enviar mensagens de mídia para um grupo
Muito semelhante ao cenário anterior, você também pode enviar mensagens de mídia para chats em grupo.
Para enviar mensagens a um grupo, você deve ser participante dele com permissão para enviar mensagens. Se você for administrador do grupo, terá permissão total para enviar mensagens.
Preparar a requisição
Target API URL (POST)
https://api.wassenger.com/v1/messages
Cabeçalhos HTTPS obrigatórios
Content-Type: application/json
Token: $API_KEY
Corpo da requisição em formato JSON
Enviando uma mensagem para um chat de grupo:
{
"group": "120363163556487865@g.us",
"message": "This is a media message example sent a group 😀",
"media": {
"file": "UPLOADED FILE ID GOES HERE"
}
}
Teste ao vivo de envio de mensagens de mídia usando a API
Agora você pode reproduzir, depurar e testar a API ao vivo diretamente do seu navegador, explorar e experimentar mais exemplos de API e obter em um clique trechos de código prontos para uso em mais de 15 linguagens de programação 😎
🤩 🤖 Wassenger é uma plataforma completa de comunicação e solução de API para WhatsApp. Explore mais de 100+ casos de uso de API e automatize qualquer coisa no WhatsApp inscrevendo-se para um teste gratuito e começar em minutos**!**
Perguntas frequentes (FAQs)
Que tipo de arquivos de mídia podem ser enviados?
Você pode enviar imagens (JPEG, PNG, WEBP), vídeos (MP4, 3GPP), áudios (MP3, OGG, MP4, ACC), gifs (MP4) e documentos (PDF, PPT, PPTX, DOCX, DOC, ZIP, RAR, outros tipos binários).
Consulte a documentação da API para mais detalhes.
Como enviar mensagens para vários números de telefone
Você só precisa enviar múltiplas requisições API, uma por número de telefone alvo.
Por exemplo, se quiser enviar uma mensagem para 10 números de telefone, você deve enviar 10 requisições HTTPS independentes para a API.
Não há opção para enviar múltiplas mensagens em uma única requisição de API.
Como validar se um número de telefone pode receber mensagens do WhatsApp
Você pode validar se um determinado número de telefone está ligado a uma conta do WhatsApp e pode receber mensagens.
A API fornece um endpoint que pode validar se um determinado número de telefone existe no WhatsApp ou não.
O único requisito é ter pelo menos um número WhatsApp conectado à plataforma em sua conta atual.
Para mais detalhes, consulte a documentação do endpoint da API aqui.
Antes de verificar se um número existe no WhatsApp, você também pode validar e normalizar o formato de uma lista de números usando o endpoint validador de números. Esse endpoint apenas valida o formato correto E164, mas não verifica se o número efetivamente existe no WhatsApp.
Observação: O número de validações de verificação do WhatsApp é limitado por mês com base no seu plano de assinatura. Verifique a tabela de preços para mais detalhes sobre os limites.
Procurando mais respostas? Consulte as FAQs estendidas.
Recursos úteis adicionais
Documentação da API
Para mais detalhes sobre os endpoints da API, por favor consulte a documentação onde você encontrará todos os detalhes sobre os parâmetros de requisição aceitos, possíveis respostas de sucesso ou erro e exemplos de código prontos para uso em múltiplas linguagens de programação:








