Grupos
Esta documentação prove as informações necessárias para a integração com a plataforma do Sinch Messaging para realizar o gerenciamento de grupos através da integração Sinch 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 Sinch Messaging. | String |
authenticationToken | String |
Campo | Descrição |
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
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 sessão de administradores de Grupo. | 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 sessã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
.
Last modified 5mo ago