Esta documentação prove as informações necessárias para a integração com a plataforma do Wavy Messaging para realizar o gerenciamento de grupos através da integração Wavy WhatsApp Integration. A API possui integração REST, utilizando o protocolo HTTP com TLS, suportando o método POST com os parâmetros enviados em formato JSON.
Para utilizar com sucesso a nossa API, é preciso apresentar um username válido, ou email, associado com um token de autenticação. É necessário adicionar os seguintes headers a requisição:
Campo | Detalhes | Data Type |
userName | Nome ou email válido para autenticação no Wavy Messaging. | String |
authenticationToken | Token de autenticação gerado por nossa plataforma. Encontre aqui ou consulte nosso suporte. here | String |
| |
Hostname | api-messaging.wavy.global |
Porta | 443 (https) |
Protocolo | HTTPS (TLS encryption) |
Autenticação | username + token |
Encoding | UTF-8 |
Ao enviar mensagens para grupos, a requisição é similar a de mensagens diretas. Apenas o objeto Destino
precisa ser adaptado.
POST https://api-messaging.wavy.global/v1/whatsapp/send
O corpo da requisição deve conter os mesmos campos de Envio de Mensagens De Texto.
Exemplo de envio a grupo
{"destinations": [{"destination": "5519900000000-1513616971","recipientType": "group"}],"message": {"messageText": "Mensagem de teste"}}
MOs de grupos contém os mesmos campos de MOs regulares com a adição de waGroupId
indicando a qual grupo a mensagem foi enviada, como mostrado no exemplo.
Tenha cuidado caso esteja respondendo automaticamente a mensagens diretas enviadas a sua conta WhatsApp. Caso o campo waGroupId
seja ignorado, o MO pode ser confundido com uma mensagem direta em vez de uma mensagem em grupo, e você responderá com uma mensagem direta. Dessa forma, você corre o risco de ser cobrado por um HSM toda vez que o usuário lhe enviar uma mensagem em grupo caso o campo waGroupId
não seja tratado corretamente.
Exemplo de mensagem e grupo:
{"total": 1,"data": [{"source": "5419900000000","origin": "5419900000000","...","message": {"type": "TEXT","messageText": "Olá","waGroupId": "5519900000000-1553784379"},"..."}]}
Crie um grupo provendo um assunto ou título para o grupo, o qual é o nome que aparecerá na lista de chats. Em resposta, você receberá um ID de grupo que usará para enviar mensagens para o grupo, gerenciar o grupo, etc.
Grupos Não Utilizados: Se você tem vários grupos não utilizados associados a sua conta, você pode encontrar um erro (devido a muitos grupos criados). Você pode simplesmente limpar os grupos que você não está mais usando saindo deles.
Exemplo
{"subject": "assunto-do-grupo"}
POST https://api-messaging.wavy.global/v1/whatsapp/groups
O corpo da requisição deve conter um objeto JSON com os seguintes campos:
Campo | Obrigatório | Detalhes | Tipo |
subject | Sim | Assunto ou título do grupo, limitado a 25 caracteres | String |
Exemplo de resposta
{"groups": [{"creation_time": 1513616971,"id": "5519900000000-1513616971"}]}
A resposta à requisição para criar um grupo retorna um ID de grupo que voce usará para enviar mensagens para o grupo, gerenciar o grupo, etc. Se você precisa obter o ID de grupo em outro momento, veja a seção Consulta de Todos os Grupos.
Os seguintes campos são retornados em uma resposta bem-sucedida:
Campo | Detalhes | Tipo |
creation_time | Hora de criação | Integer |
id | Identificador de grupo para o grupo recém-criado. Deve ser usado para identificar unicamente grupos em requisições subsequentes, onde group_id é usado. | String |
Recupere todos os grupos em que o cliente é um participante.
GET https://api-messaging.wavy.global/v1/whatsapp/groups
Exemplo de resposta
{"groups": [{"id": "5519900000000-1513616971"}]}
A resposta retorna os IDs de grupo de todos os grupos em que o cliente é um participante. Você pode obter mais informações sobre o grupo, como a lista de participantes e o assunto do grupo, usando a chamada descrita na seção Consulta a Informaçôes de Grupo.
Os seguintes campos são retornados em uma resposta bem-sucedida. Se nenhum grupo existir, um array JSON de grupos vazio é retornado.
Campo | Detalhes | Tipo |
id | Lista dos grupos que o cliente participa | String |
Use esta chamada para obter informações sobre o grupo, incluindo o ID dos participantes, e o assunto do grupo. Esta chamada não retornará o ícone do grupo. Para obter o ícone do grupo, veja a seção Consulta a Ícone de Grupo.
GET https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id
Exemplo de resposta
{"groups": [{"admins": ["5519900000000"],"creation_time": 1513616971,"creator": "5519900000000","id": "5519900000000-1513616971","participants": ["5519900000000"],"subject": "assunto-do-grupo"}]}
Os seguintes campos são retornados em uma resposta bem-sucedida:
Campo | Detalhes | Tipo |
admins | Administradores do grupo. Lista os IDs do criador do grupo e de quaisquer administradores adicionados como descrito na seção Adição de Administradores. | String[] |
creation_time | Hora de criação do grupo | Int |
creator | ID do criador do grupo | String |
id | ID do grupo | String |
participants | Participantes do grupo. É um array com todos os IDs dos participantes no grupo. Inicialmente, será apenas o criador do grupo. Convide usuários para o grupo criando um link de convite, como descrito na seção Criação de Link de Convite de Grupo. | String[] |
subject | Assunto do grupo | String |
Atualizar a informação é definir um novo assunto do grupo.
Exemplo
{"subject": "novo-assunto-do-grupo"}
PUT https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id
O corpo da requisição deve conter um objeto JSON com os seguintes campos:
Campo | Obrigatório | Detalhes | Tipo |
subject | Sim | Atualize o assunto do grupo para este valor, limitado a 25 caracteres | String |
Uma resposta bem-sucedida retornará status 200 OK
e null
ou {}
. Caso o grupo não seja encontrado, a resposta será 404 Not Found
.
Você não pode adicionar participantes diretamente ao grupo. Participantes podem apenas serem convidados para o grupo. Crie um link que participantes possam usar para se unir ao grupo.
GET https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/invite
Exemplo de resposta
{"groups": [{"link": "link-de-convite-de-grupo"}]}
Os seguintes campos são retornados em uma resposta bem-sucedida:
Campo | Detalhes | Tipo |
link | O link para o convite do grupo | String |
Quando você tiver o link para convidar participantes para o grupo, envie o link em uma mensagem de texto. Quando o usuário clicar na mensagem, ele será convidado para o grupo.
DELETE https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/invite
Uma resposta bem-sucedida retornará status 200 OK
e null
ou {}
.
Exemplo
{"waIds": ["5519900000000","5519900000000"]}
DELETE https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/participants
O body da requisição deve conter um objeto JSON com os seguintes campos:
Campo | Obrigatório | Detalhes | Tipo |
waIds | Sim | Números dos participantes a serem removidos do grupo | String[] |
Uma resposta bem-sucedida retornará status 200 OK
e null
ou {}
. Caso o número de telefone não seja encontrado, a resposta será 400 Bad Request
.
Sair de um grupo significa que você se removerá da lista de participantes do grupo. O Grupo continuará a existir com os participantes restantes.
POST https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/leave
Uma resposta bem-sucedida retornará status 200 OK
e null
ou {}
. Caso o número de telefone não seja encontrado, a resposta será 400 Bad Request
.
Exemplo
curl -X POST \https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/icon \-H 'authenticationToken: <authenticationtoken>'-H 'username: <username>' \-H 'Content-Type: image/jpeg' \--data-binary @your-file-path
POST https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/icon Content-Type: image/jpeg or other appropriate type
binary-image-content
Para definir o ícone de um grupo, é necessário fazer upload de uma imagem a partir de seu conteúdo binário. O header Content-Type
deve corresponder ao tipo MIME da imagem.
Uma resposta bem-sucedida retornará status 200 OK
e null
ou {}
.
GET https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/icon
Response example
{"type": "URL","mimeType": "image/jpeg","fileName": "groupIcon.jpeg","extraData": {"public": true,"Content-Type": "image/jpeg","Content-Length": "2500"},"data": "https://chatclub-cdn.wavy.global/2019/03/25/ce425ffe-bc62-421f-9261-e6819a5eab43/groupIcon.jpeg"}
Uma resposta bem sucedida retornará status 200 OK
e um objeto JSON com os seguintes campos. Caso o grupo não tenha um ícone associado, a resposta será status 404 Not Found
.
Campo | Detalhes | Tipo |
type | Tipo do campo data | String |
mimeType | Tipo MIME do arquivo | String |
fileName | Nome do arquivo | String |
extraData | Informações sobre o arquivo | String |
data | Arquivo | String |
DELETE https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/icon
Uma resposta bem-sucedida retornará status 200 OK
e null
ou {}
. Caso o grupo não tenha um ícone associado, a resposta será 404 Not Found
.
Por padrão, o único administrador de um grupo é seu criador. Mais administradores podem ser adicionados desde que já sejam participantes do grupo. Para consultar participantes de um grupo, siga as instruções em Consulta a Informações de Grupo
Example
{"waIds": ["5519900000000","5519900000000"]}
PATCH https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/admins
O body da requisição deve conter um objeto JSON com os seguintes campos:
Campo | Obrigatório | Detalhes | Tipo |
waIds | Sim | Números dos participantes que se tornarão administradores | String[] |
Uma resposta bem-sucedida retornará status 200 OK
e null
ou {}
. Caso o número de telefone não seja encontrado, a resposta será 400 Bad Request
.
Administradores podem ser removidos de forma que se tornem participantes regulares do grupo. Para consultar administradores de um grupo, siga as instruções em Consulta a Informações de Grupo.
Example
{"waIds": ["5519900000000"]}
DELETE https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/admins
O body da requisição deve conter um objeto JSON com os seguintes campos:
Campo | Obrigatório | Detalhes | Tipo |
waIds | Sim | Os números de telefone dos participantes que se tornarão administradores | String[] |
Uma resposta de sucesso retornará status 200 OK
e null
ou {}
. Caso o número de telefone não seja encontrado, a resposta será 400 Bad Request
.