Disparando um RCS
Endpoint
Para enviar uma campanha RCS, você deve fazer uma requisição do tipo POST para o endpoint https://sistema.dchat.com.br/api/rcs/send .
Autenticação
Você deve adicionar ao cabeçalho da requisição a sua API Token, através do cabeçalho Authorization. Se você ainda não possui sua chave, veja aqui como criar uma.
Corpo da Requisição
O body da sua requisição deve ser no formato JSON contendo obrigatoriamente os campos fallback, callback, messages e tokens, mas fique tranquilo que falaremos deles a seguir.
fallback
O campo fallback é do tipo boolean, ou seja, deve conter os valores true ou false. Ele serve para identificar se devemos enviar um SMS para aparelhos que não tenham suporte ao RCS.
Se você definir o fallback como false, o seu crédito será ressarcido assim que for verificado que o número não possuir suporte ao RCS.
fallback_message
O campo fallback_message determina qual será o SMS enviado caso o campo fallback seja true. O tamanho máximo desse campo segue o limite de um SMS, ou seja, 160 caracteres.
É importante lembrar, que apesar do envio ser um SMS, ele é cobrado como um RCS.
callback
Serve para identificar para o servidor qual a URL que deverá receber as notificações de envio e respostas de cada token.
messages
É um array de mensagens. Como existem vários tipos de mensagens e cada uma tem sua particularidade, elas foram tratadas em um capítulo separado.
tokens
É um array de strings contendo os números que irão receber os RCS. O token pode ou não conter o DDI, caso ele não seja informado incluiremos o do Brasil por padrão.
Lembre-se sempre de enviar os tokens entre aspas (").
Exemplo de requisição
No exemplo a seguir, seriam enviadas três mensagens, uma contendo uma imagem, a outra um vídeo e por último um PDF, para três números de celulares.
{
"fallback": false,
"callback": "https://localhost/rcs-callback",
"messages": [
{
"image": {
"url": "http://localhost/images/thechat_logo.png"
}
},
{
"video": {
"url": "https://file-examples.com/wp-content/storage/2017/04/file_example_MP4_480_1_5MG.mp4"
}
},
{
"pdf": {
"url": "https://file-examples.com/wp-content/storage/2017/10/file-sample_150kB.pdf"
}
}
],
"tokens": [
"14981546797",
"11632359235",
"13981654572"
]
}
Um outro exemplo com o envio de um Card com quatro botões e com fallback ativo.
{
"fallback": true,
"fallback_message": "Você ainda não possui suporte ao RCS!",
"callback": "https://localhost",
"messages": [
{
"card": {
"text": "Mensagem de Texto",
"title": "Título do Card!",
"url": "http://localhost/images/thechat_logo.png",
"options": [
{
"type": "call",
"title": "Liga pra mim!",
"value": "14981546757"
},
{
"type": "call",
"title": "Acesse nosso insta",
"value": "https://instagram.com/ricocrivelli"
},
{
"type": "reply",
"title": "Parar de receber mensagem",
"value": "Sair"
},
{
"type": "link",
"title": "Acesse nosso site!",
"value": "https://uol.com.br"
},
{
"type": "call",
"title": "Ignorado",
"value": "Nao vai computador"
}
]
}
}
],
"tokens": [
"14981546757",
"14632359235",
"14981654572"
]
}
Retorno da requisição
A requisição irá retornar uma resposta no formato JSON indicando se houve erro e qual foi ou se o envio foi um sucesso.sucesso, além do código do disparo.
As mensagens de erro estão em um capítulo separado.
{
"success": truetrue,
"batch": 1
}
Código do Disparo
O código do disparo (parâmetro batch) é um número único e que será enviado sempre junto com as respostas de callback, portanto é necessário sempre guardar essa informação, para que junto com o número de celular, torne os tokens únicos.