Ir para o conteúdo

Envio de mensagens com mídia#

/v1/messages

Use o método messages para enviar imagens, vídeo, áudio e documentos para um correspondente ou grupo.

A Green API oferece suporte a duas opções de envio de arquivos:

  1. Envio de arquivos de mídia
  2. Enviando arquivos por link

1. Envio de arquivos de Mídia#

Para enviar uma mensagem com um arquivo, você deve primeiro enviar o arquivo para a mídia de armazenamento em nuvem de acordo com a documentação Enviando Arquivos de Mídia. O campo de upload receberá o identificador de arquivo your-media-id, que deve ser especificado no campo id ao enviar uma mensagem. Use esta opção de upload se o arquivo estiver localizado localmente em seu servidor e não puder ser acessado pela Internet.

Se um arquivo já foi publicado na Internet e está disponível para download por meio de um link, ao enviar uma mensagem, basta indicar um link para esse arquivo no campo link. Neste caso, você não precisa fazer o upload do arquivo para a mídia de armazenamento em nuvem.

3. Requisição#

Para enviar uma imagem, vídeo, áudio ou documento, você precisa fazer uma requisição em:

POST https://api.green-api.com/v1/messages
{
    "recipient_type": "individual" | "group",
    "to": "whatsapp-id" | "whatsapp-group-id",
    "type":  "image" | "video" | "audio" | "document",

    "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",
    }

}

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.

Parâmetros de Requisição#

Parâmetro Tipo Obrigatório Descrição
recipient_type string Não Define o tipo de destinatário - correspondente ou grupo. Valores possíveis: individual - envio para o correspondente; group - enviando para um grupo. Valor padrão: individual
to string Sim O tipo de mensagem a ser enviada. Ao enviar uma mensagem com dados de mídia pode assumir um dos seguintes valores: imagem,vídeo, áudio,documento
image object Sim, se "type":"imagem" Objeto de dados de imagem
video object Sim, se "type": "video" Objeto de dados de vídeo
audio object Sim, se "type": "audio" Objeto de dados de áudio
document object Sim, se "type": "document" Objeto do tipo documento

Objeto image

Parâmetro Tipo Obrigatório Descrição
id string Sim, a menos que link seja especificado O ID do arquivo de imagem da media de armazenamento em nuvem. O arquivo deve primeiro ser carregado usando o método Enviando Arquivos de Mídia
link string Sim, se id não for especificado Link para o arquivo de imagem. O link deve estar acessível na Internet. É permitido especificar links apenas para os protocolos HTTP eHTTPS
caption string Não Descrição da imagem. Exibido na conversa abaixo da imagem.

Objeto video

Parâmetro Tipo Obrigatório Descrição
id string Sim, a menos que link seja especificado O ID do arquivo de imagem da media de armazenamento em nuvem. O arquivo deve primeiro ser carregado usando o método Enviando Arquivos de Mídia
link string Sim, se id não for especificado Link para o arquivo de imagem. O link deve estar acessível na Internet. É permitido especificar links apenas para os protocolos HTTP eHTTPS

Objeto audio

Parâmetro Tipo Obrigatório Descrição
id string Sim, a menos que link seja especificado O ID do arquivo de imagem da mídia de armazenamento em nuvem. O arquivo deve primeiro ser carregado usando o método Enviando Arquivos de Mídia
link string Sim, se id não for especificado Link para o arquivo de imagem. O link deve estar acessível na Internet. É permitido especificar links apenas para os protocolos HTTP eHTTPS

Objeto document

Parâmetro Tipo Obrigatório Descrição
id string Sim, a menos que link seja especificado O ID do arquivo de imagem da mídia de armazenamento em nuvem. O arquivo deve primeiro ser carregado usando o método Enviando Arquivos de Mídia
link string Sim, se id não for especificado Link para o arquivo de imagem. O link deve estar acessível na Internet. É permitido especificar links apenas para os protocolos HTTP eHTTPS

Exemplo de Requisição#

Enviando uma imagem. No exemplo, o arquivo de imagem foi carregado anteriormente para o armazenamento em nuvem media e o ID do arquivo retornado foibca567ba-0bd7-4211-8792-0c123fbd2716:

{
    "to": "5521988894545",
    "type":  "image",
    "image": {
        "id": "bca567ba-0bd7-4211-8792-0c123fbd2716",
        "caption": "Green-API Logo"
    }
}

Enviando um documento para um grupo usando um link:

{
    "recipient_type": "group",
    "to": "5521985880089-1581234048",
    "type":  "document",
    "document": {
        "link": "https://storage.mysite.com/upload/green-api-presentation.pdf"
    }
}

Resposta#

Em uma resposta bem-sucedida, o código HTTP 201 é retornado.

Parâmetros de Resposta#

Parâmetro Tipo Descrição
messages array Array de IDs de mensagens enviadas

Array de mensagens

Parâmetro Tipo Descrição
id string ID de mensagem enviada

Exemplo de Reposta#

201 Created
{
    "messages": [
        {
            "id": "1234"
        }
    ],
    "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": 1,
            "details": "The file URL is not available",
            "title": "O arquivo não está disponível no URL fornecido"
        }
    ],
    "meta": {
        "api_status": "stable",
        "version": "2.0.1"
    }
}

Exemplo de código Python#

import requests

url = "https://api.green-api.com/v1/messages"

payload = "{\r\n    \"to\": \"79001234567\",\r\n    \"type\":  \"image\",\r\n    \"image\": {\r\n        \"id\": \"bca567ba-0bd7-4211-8792-0c123fbd2716\",\r\n        \"caption\": \"Green-API Logo\"\r\n    }\r\n}"
headers = {
  'Authorization': 'Bearer {{AuthToken}}',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))