Aprenda a gerenciar, automatizar e enviar efetivamente mensagens multimídia, como imagens, vídeos e documentos para Canais do WhatsApp em 2024. Este guia fornece instruções completas para usar a API do WhatsApp para engajar seu público e entregar conteúdo rico. Inclui exemplos de código prontos para uso para integração fácil!
🤩 🤖 Wassenger é uma plataforma completa de comunicação e solução de API para o WhatsApp. Explore mais de 100+ casos de uso da API e automatize qualquer coisa no WhatsApp inscrevendo-se para um teste gratuito e comece em minutos**!**
Hoje, vamos mostrar como enviar imagens, vídeos, documentos e notas de voz para seus canais com a Wassenger’s 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 realizar requisições HTTPS para a API. Abaixo você encontrará o API tester ao vivo com exemplos de código prontos para uso em várias linguagens de programação.
Requisitos
- Ter um número do WhatsApp já vinculado à plataforma e online.
- ID do Canal do WhatsApp (WID) que você pode encontrar de duas maneiras:
- No painel de gerenciamento do seu número do WhatsApp, vá em “Groups”. A partir daí você verá os canais aos quais seu número tem acesso.
- Usando a API, consulte os canais disponíveis no seu dispositivo usando este endpoint.
API endpoint
Neste tutorial usaremos o seguinte endpoint da API:
Preparar a requisição
URL alvo da API
https://api.wassenger.com/v1/messages
Cabeçalhos HTTPS obrigatórios
Content-Type: application/json
Token: $API-TOKEN
Corpo da requisição em formato JSON para uma mensagem de imagem
{
"channel": "$channel_ID@newsletter",
"message": "This is a caption for an image message",
"media": {
"url": "https://picsum.photos/seed/picsum/600/400",
"viewOnce": false
}
}
Corpo da requisição em formato JSON para uma mensagem de vídeo
{
"channel": "$channel_ID@newsletter",
"message": "This is a caption for an image message",
"media": {
"url": "https://download.samplelib.com/mp4/sample-5s.mp4",
"viewOnce": false
}
}
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
Explore como usar o código no seu navegador sem instalar nenhum software.
Enviar imagens para um Canal do WhatsApp
# Examples requires to have installed requests Python package.
# Install it by running: pip install requests
import requests
url = "https://api.wassenger.com/v1/messages"
payload = {
"channel": "$channel_ID@newsletter",
"message": "This is a caption for an image message",
"media": {
"url": "https://picsum.photos/seed/picsum/600/400",
"viewOnce": False
}
}
headers = {
"Content-Type": "application/json",
"Token": "API_TOKEN_GOES_HERE"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.wassenger.com/v1/messages',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'channel' => '$channel_ID@newsletter',
'message' => 'This is a caption for an image message',
'media' => [
'url' => 'https://picsum.photos/seed/picsum/600/400',
'viewOnce' => null,
],
]),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Token: API_TOKEN_GOES_HERE',
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo 'cURL Error #:' . $err;
} else {
echo $response;
}
// Examples requires to have installed pecl_http package, a simple and elegant HTTP client for PHP.
// Install it by running: pecl install pecl_http
// More information: https://pecl.php.net/package/pecl_http/3.2.0
<?php
$client = new http\Client();
$request = new http\Client\Request();
$body = new http\Message\Body();
$body->append(
json_encode([
'channel' => '$channel_ID@newsletter',
'message' => 'This is a caption for an image message',
'media' => [
'url' => 'https://picsum.photos/seed/picsum/600/400',
'viewOnce' => null,
],
])
);
$request->setRequestUrl('https://api.wassenger.com/v1/messages');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
'Content-Type' => 'application/json',
'Token' => 'API_TOKEN_GOES_HERE',
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
package main
import(
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url:= "https://api.wassenger.com/v1/messages"
payload:= strings.NewReader("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for an image message\", \"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\", \"viewOnce\":false}}")
req, _:= http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Token", "API_TOKEN_GOES_HERE")
res, _:= http.DefaultClient.Do(req)
defer res.Body.Close()
body, _:= io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
// This code requires you to have installed RestSharp package.
// Documentation: https://restsharp.dev
// Installation: https://www.nuget.org/packages/RestSharp
var client = new RestClient("https://api.wassenger.com/v1/messages");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Token", "API_TOKEN_GOES_HERE");
request.AddParameter("application/json", "{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for an image message\", \"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\", \"viewOnce\":false}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
require 'uri' require 'net/http'
url = URI("https://api.wassenger.com/v1/messages") http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request["Token"] = 'API_TOKEN_GOES_HERE' request.body = "{\"channel\":\"$channel_ID@newsletter\",\"message\":\"This is a caption for an image message\",\"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\\",\\"viewOnce\\":false}}"
response = http.request(request) puts response.read_body
// This code requires you to have installed Unirest package.
// Documentation: https://kong.github.io/unirest-java/#requests
// Installation: http://kong.github.io/unirest-java/
HttpResponse<String> response = Unirest.post("https://api.wassenger.com/v1/messages")
.header("Content-Type", "application/json")
.header("Token", "API_TOKEN_GOES_HERE")
.body("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for an image message\", \"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\", \"viewOnce\":false}}")
.asString();
🤩 🤖 Wassenger é uma solução completa de API para o WhatsApp. Inscreva-se para um teste gratuito de 7 dias e comece em minutos!
Enviar vídeos para um Canal do WhatsApp
# Examples requires to have installed requests Python package.
# Install it by running: pip install requests
import requests
url = "https://api.wassenger.com/v1/messages"
payload = {
"channel": "$channel_ID@newsletter",
"message": "This is a caption for an image message",
"media": {
"url": "https://download.samplelib.com/mp4/sample-5s.mp4",
"viewOnce": False
}
}
headers = {
"Content-Type": "application/json",
"Token": "API_TOKEN_GOES_HERE"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.wassenger.com/v1/messages',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'channel' => '$channel_ID@newsletter',
'message' => 'This is a caption for an image message',
'media' => [
'url' => 'https://download.samplelib.com/mp4/sample-5s.mp4',
'viewOnce' => null,
],
]),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Token: API_TOKEN_GOES_HERE',
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo 'cURL Error #:' . $err;
} else {
echo $response;
}
// Examples requires to have installed pecl_http package, a simple and elegant HTTP client for PHP.
// Install it by running: pecl install pecl_http
// More information: https://pecl.php.net/package/pecl_http/3.2.0
<?php
$client = new http\Client();
$request = new http\Client\Request();
$body = new http\Message\Body();
$body->append(
json_encode([
'channel' => '$channel_ID@newsletter',
'message' => 'This is a caption for a video message',
'media' => [
'url' => 'https://download.samplelib.com/mp4/sample-5s.mp4',
'viewOnce' => null,
],
])
);
$request->setRequestUrl('https://api.wassenger.com/v1/messages');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
'Content-Type' => 'application/json',
'Token' => 'API_TOKEN_GOES_HERE',
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
package main
import(
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url:= "https://api.wassenger.com/v1/messages"
payload:= strings.NewReader("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}")
req, _:= http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Token", "API_TOKEN_GOES_HERE")
res, _:= http.DefaultClient.Do(req)
defer res.Body.Close()
body, _:= io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
// This code requires you to have installed RestSharp package.
// Documentation: https://restsharp.dev
// Installation: https://www.nuget.org/packages/RestSharp
var client = new RestClient("https://api.wassenger.com/v1/messages");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Token", "API_TOKEN_GOES_HERE");
request.AddParameter("application/json", "{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
require 'uri' require 'net/http'
url = URI("https://api.wassenger.com/v1/messages")
http = Net::HTTP.new(url.host, url.port) http.use_ssl = true
request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request["Token"] = 'API_TOKEN_GOES_HERE' request.body = "{\"channel\":\"$channel_ID@newsletter\",\"message\":\"This is a caption for a video message\",\"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\\",\\"viewOnce\\":false}}"
response = http.request(request) puts response.read_body
// This code requires you to have installed Unirest package.
// Documentation: https://kong.github.io/unirest-java/#requests
// Installation: http://kong.github.io/unirest-java/
HttpResponse<String> response = Unirest.post("https://api.wassenger.com/v1/messages")
.header("Content-Type", "application/json")
.header("Token", "API_TOKEN_GOES_HERE")
.body("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}")
.asString();
🤩 🤖 Wassenger é uma solução completa de API para o WhatsApp. Inscreva-se para um teste gratuito de 7 dias e comece em minutos!
Teste de API ao vivo
Você pode testar a API ao vivo e brincar com ela diretamente do seu navegador.
Quando terminar de testar, obtenha o exemplo de código gerado automaticamente na sua linguagem de programação preferida e você estará pronto para começar.
Experimente nosso testador de API ao vivo agora
🤩 🤖 Wassenger é uma plataforma completa de comunicação e solução de API para o WhatsApp. Explore mais de 100+ casos de uso da API e automatize qualquer coisa no WhatsApp inscrevendo-se para um teste gratuito e comece em minutos**!**
FAQ
Posso usar o Wassenger para enviar mensagens de marketing?
Como você deve saber, o WhatsApp tem políticas rígidas sobre o envio de mensagens de marketing não solicitadas, conteúdo ilícito ou spam.
Enviar mensagens de marketing ou quaisquer mensagens não solicitadas para usuários não é permitido e você colocaria seu número do WhatsApp em alto risco de ser banido.
A comunicação via WhatsApp não é adequada para todos os casos de uso empresarial, portanto recomendamos projetar uma estratégia de comunicação legítima e aprovada pelo usuário para evitar problemas.
Por favor, leia nossas diretrizes com melhores práticas de comunicação e como prevenir banimentos.
Como enviar mensagens para múltiplos números de telefone 📲
Você precisa enviar várias requisições à API, uma por número de telefone alvo.
Por exemplo, para enviar uma mensagem para 10 números de telefone, você deve enviar 10 requisições HTTPS independentes para a API.
Não existe 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á vinculado 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 do WhatsApp conectado à plataforma na sua conta atual.
Para mais detalhes, por favor confira a documentação do endpoint da API aqui.
Antes de verificar se um número de telefone existe no WhatsApp, você também pode validar e normalizar o formato de uma lista de números de telefone usando o endpoint validador de números da API. Este endpoint apenas valida o formato correto E164 format, mas não verifica se o número de telefone efetivamente existe no WhatsApp.
Nota: O número de validações de verificação no WhatsApp é limitado por mês com base no seu plano de assinatura. Por favor, consulte a tabela de preços para mais detalhes sobre os limites.
Procurando mais respostas? Confira as FAQs estendidas.
Recursos úteis adicionais
Documentação da API 🖥️
Para mais detalhes sobre o endpoint 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:
https://app.wassenger.com/docs/#tag/Messages/operation/createMessage







