Envio de mensagens em massa#
/v1/broadcast
Use o método broadcast
para enviar mensagens em massa para seus contatos. Suporta o envio de mensagens de texto, bem como mensagens com imagens, vídeo, áudio e documentos. O número de destinatários não é limitado.
Condições de entrega do envio em massa#
As mensagens serào entregues se as seguintes condições forem atendidas:
- O número de telefone da conta a partir da qual o envio é realizado está registrado nos contatos no telefone do destinatário;
- O destinatário da mensagem deve primeiro receber pelo menos uma mensagem da conta de envio.
Limitações#
Ao enviar mensagens em massa, as seguintes restrições são definidas:
- Tamanho máximo da imagem: 1000x1000 px
- O comprimento mínimo do texto de envio: 10 caracteres
- Comprimento máximo do texto de envio: 2000 caracteres
- Número mínimo de contatos de destino: 2 contatos
- Número máximo de contatos de destino: ILIMITADO
Seleção de destinatários de envio#
É possível definir de forma flexível os destinatários da correspondência:
- Enviar mensagens para todos os contatos (não especifique nenhum dos parâmetros:
to
,period
,active
); - Enviar mensagens para lista de contatos (use o parâmetro
to
); - Enviar mensagens aos contatos cadastrados no período especificado (usar o parâmetro
period
); - Enviar mensagens aos contatos ativos no período especificado (use o parâmetro
active
).
Os parâmetros perido
eactive
podem ser combinados entre si. O parâmetro to
não pode ser combinado com nenhum outro parâmetro e é aplicado separadamente.
Requisição#
Para enviar mensagens em massa, você precisa realizar uma requisição em:
POST https://api.green-api.com/v1/broadcast
{
"name": "broadcast-name",
"to": [
{"wa_id": "whatsapp-id-1"},
{"wa_id": "whatsapp-id-2"},
{"wa_id": "whatsapp-id-3"}
],
"period": {
"from": "registration-period-from",
"to": "registration-period-to"
},
"active": {
"from": "contact-active-from",
"to": "contact-active-to"
},
"type": "text" | "image" | "video" | "audio" | "document",
"text": {
"body": "your-text-message-content"
},
"image": {
"id": "your-media-id",
"caption": "your-image-caption"
},
"image": {
"link": "http(s)://the-url",
"caption": "your-image-caption"
},
"video": {
"id": "your-media-id"
},
"video": {
"link": "http(s)://the-url"
},
"audio": {
"id": "your-media-id"
},
"audio": {
"link": "http(s)://the-url"
},
"document": {
"id": "your-media-id",
},
"document": {
"link": "http(s)://the-url",
},
"startAt": "date-to-start-broadcast"
}
O corpo da solicitação é mostrado como um exemplo. O exemplo lista todas as opções possíveis para enviar dados de mídia. Um corpo de solicitação válido pode conter apenas um objeto de mídia ou apenas um objeto de mensagem de texto.
Parâmetros de Solicitação#
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
name | string | Sim | Nome para definição do Envio em Massa |
to | array | Não | Array com a seleção de contatos para envio. Se o parâmetro for especificado, apenas os contatos do array receberão a mensagem. O número mínimo de contatos são 2 e máximo ILIMITADO. |
period | object | Não | Seleção pelo período de inscrição dos contatos. Se o parâmetro for especificado, apenas os contatos registrados no intervalo de datas especificado receberão as mensagens. |
active | object | Não | Seleção pelo período de atividade do contato. Se o parâmetro for especificado, a lista de mensagens será recebida apenas por contatos ativos no intervalo de datas especificado. |
type | string | Não | O tipo de mensagem a ser enviada. Pode aceitar os valores: text ,image , video ,audio , document . Ao enviar uma mensagem de texto, o parâmetro é opcional. Valor padrão: text . |
text | object | Sim, se "type": "text" | Objeto de mensagem de texto. Para obter detalhes, consulte Enviando mensagens de texto |
image | object | Sim, se "type": "image" | Objeto de dados de imagem. Para obter detalhes, consulte Enviando mensagens com mídia |
video | object | Sim, se "type": "video" | Objeto de dados de video. Para obter detalhes, consulte Enviando mensagens com mídia |
audio | object | Sim, se "type": "audio" | Objeto de dados de áudio. Para obter detalhes, consulte Enviando mensagens com mídia |
document | object | Sim, se "type": "document" | Objeto com dados do documento. Para obter detalhes, consulte Enviando mensagens com mídia |
startAt | date | Não | Data de início do envio. Se o valor não for especificado, o envio começará imediatamente |
Array to
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
wa_id | string | Sim | ID do Contato. O número mínimo de elementos em uma array é dois. O valor máximo não é limitado. |
Objeto period
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
from | date | Sim | O limite inferior de seleção pela data de inscrição na lista de contatos |
to | date | Sim | O limite superior de seleção pela data de inscrição na lista de contatos |
Objeto active
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
from | date | Sim | O limite inferior de seleção pela data de atividade na lista de contatos |
to | date | Sim | O limite superior de seleção pela data de atividade na lista de contatos |
Objeto text
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
body | string | Sim | Mensagem de texto. Pode conter vários URLs e formatação. O comprimento mínimo do texto da mensagem é de 10 caracteres, o comprimento máximo é de 2.000 caracteres. Emoji são suportados 😃. |
Exemplo de Solicitação#
Enviando mensagem em massa para todos os contatos:
{
"name": "Broadcast from Green-API",
"type": "text",
"text": {
"body": "I use Green-API to send this broadcast to you!"
}
}
Enviando uma mensagem massa para uma lista de contatos:
{
"name": "Broadcast from Green-API",
"to": [
{"wa_id": "5521988897878"},
{"wa_id": "5521988897879"},
{"wa_id": "5521988897890"}
],
"type": "text",
"text": {
"body": "I use Green-API to send this broadcast to you!"
}
}
Envio de mensagem em massa aos contatos cadastrados em janeiro de 2020:
{
"name": "Broadcast from Green-API",
"period": {
"from": "2020-01-01 00:00:00",
"to": "2020-01-31 23:59:59"
},
"type": "text",
"text": {
"body": "I use Green-API to send this broadcast to you!"
}
}
Envio a todos os contatos com uma imagem e uma descrição abaixo da imagem. No exemplo, o arquivo de imagem foi carregado anteriormente para o armazenamento em nuvem media
e o ID do arquivo erabca567ba-0bd7-4211-8792-0c123fbd2716
:
{
"name": "Broadcast from Green-API",
"type": "image",
"image": {
"id": "bca567ba-0bd7-4211-8792-0c123fbd2716",
"caption": "I use Green-API to send this broadcast to you!"
}
}
Resposta#
Em uma resposta bem-sucedida, o código HTTP 201
é retornado
Campo | Tipo | Descrição |
---|---|---|
broadcast | array | Array com os identificadores das campanhas criadas |
Array broadcast
Campo | Tipo | Descrição |
---|---|---|
id | string | ID da Lista de Envio Criada |
Exemplo de Resposta#
201 Created
{
"broadcast": [
{
"id": "5f205403eb8c561bd4a51f27"
}
],
"meta": {
"api_status": "stable",
"version": "2.0.1"
}
}
Erros#
Para obter uma lista de erros comuns a todos os métodos, consulte a seção Erros padrão.
Em caso de erro, o código HTTP 400
é retornado com uma descrição detalhada do erro no corpo da resposta.
Exemplo de Resposta de Erro#
{
"errors": [
{
"code": 81,
"details": "Failed to create broadcast",
"title": "Falha ao criar lista de envio de mensagens"
}
],
"meta": {
"api_status": "stable",
"version": "2.0.1"
}
}
Exemplo de código Python#
import requests
url = "https://api.green-api.com/v1/broadcast"
payload = "{\r\n \"name\": \"Broadcast from Green-API\",\r\n \"to\": [\r\n {\"wa_id\": \"5521985889090\"},\r\n {\"wa_id\": \"5521985889991\"},\r\n {\"wa_id\": \"5521985889098\"}\r\n ], \r\n \"type\": \"text\",\r\n \"text\": {\r\n \"body\": \"I use Green-API to send this broadcast to you!\"\r\n }\r\n}"
headers = {
'Authorization': 'Bearer <your api token>',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))