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#
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.
2. Enviando arquivos por link#
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'))