Enviar Mensagens Multimídia para Canais do WhatsApp Usando a API

25 de outubro de 2024

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:
  1. 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.
  2. 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

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger

Get Started Free