API
O canal Custom foi desenvolvido para atender clientes que desejam centralizar diversos canais de comunicação dentro de sua própria infraestrutura.
Por exemplo, suponha que um cliente tenha uma API que envie mensagens aos seus usuários. No entanto, esse cliente deseja que essas mensagens sejam entregues por meio de um chatbot. O canal Custom possibilita esse fluxo, permitindo que o Ligo Bots orquestre a interação do bot e encaminhe as mensagens para a URL cadastrada.
Configuração
- Acesse o Ligo Bots e ative o canal Custom
- Vá até a configuração do seu chatbot e ative o canal Custom.
- Cadastre a URL que receberá as mensagens.
Exemplo: No caso acima, cadastramos uma URL do NGROK para recebimento de mensagens. Isso significa que todas as mensagens geradas pelo fluxo do bot serão enviadas para essa URL.
- Após cadastrar a URL, clique em “Salvar”.
- Em seguida, clique em “Gerar chave” para criar a chave de API.
Após a chave ser gerada, clique em “Ver key” e depois em “Ver”.
Copie a chave gerada e armazene-a em um local seguro! Você só poderá visualizar essa chave uma única vez.
Este bloco de texto é o primeiro item do fluxo.
Agora, sempre que uma mensagem for enviada ao Ligo Bots, uma nova sessão será criada e os dados serão enviados para a URL configurada.
Custom Channel API
Serviço:
wapp.boteria.com.br
Caminhos:
Parâmetro | Caminho |
---|---|
Enviar Mensagem | POST /custom/message/:botId |
Enviar Status | POST /custom/message/:botId |
Cabeçalho da requisição:
Parâmetro | Tipo | Descrição | Exemplo |
---|---|---|---|
Authorization | Bearer | Chave para utilização nas requests | Bearer 0f7e655b-74c8-4bcb-9bc8-a4d01cdf7bd5 |
Parâmetros:
Parâmetro | Tipo | Descrição | Exemplo |
---|---|---|---|
clientId | string | Identificação para o cliente e sessão | “5511989898989” |
parameters | string no formato JSON | Parâmetros para serem utilizados no início de uma nova sessão | { “name”: “John” } |
text | text | ||
media | media |
Métodos:
Enviar Mensagem
Solicitação HTTP
POST https://wapp.boteria.com.br/custom/message/:botId
Parâmetros de caminho:
botID | string |
---|---|
Obrigatório |
Corpo da requisição:
O corpo da solicitação contém uma instância de Status.
Enviar Status
Solicitação HTTP
POST https://wapp.boteria.com.br/custom/status/:botId
Parâmetros de caminho:
botID | string |
---|---|
Obrigatório |
Referência da API
Message
Mensagem de mídia
Represetação Json
{
"parameters":"{'name':'John Doe'}"
, "clientId": "5511989898989", “media”: Media}
Mensagem de texto
Represetação Json
{
"parameters":"{'name':'John Doe'}"
, "clientId": "5511989898989", “text”: Text}
Status
Represetação Json
{
"clientId": "5511989898989", "status": "read", // none | sent | delivered | read | failed "messageId": "d1a8db26-c820-4109-827e-9f6749660e31"}
Text
Represetação Json
{
"body": "Hello World!"}
Media
Represetação Json
{
"file":{
“content”: “BASE_64”}
}
Action
Represetação Json
{
"type": "CAROUSEL", "destination":{
"value": "66574139ad843850606b41bc", "type": "item"}
}
Mensagem do Bloco de Texto para o custom
Represetação Json
{
"to": "551198989999", // clientId "id": "6964beac-2e7e-4b18-b0c1-883df1772d2f", "type": "text", "text":{
"type": "Text", "body": "Olá bom dia"}
}
Text (Suggestion List)
Mensagem do Bloco de Texto com botões de sugestão para o custom
Represetação Json
{
"to": "551198989999", // clientId "id": "6964beac-2e7e-4b18-b0c1-883df1772d2f", "type": "text", "text":{
"type": "Text", "body": "Olá bom dia"}
, “suggestionList”: [ 'Exemplo de texto' ]
}
Menu (Suggestion List)
Mensagem do Bloco de Menu com botões de sugestão para o custom
Represetação Json
{
"to": "551198989999", // clientId "id": "6964beac-2e7e-4b18-b0c1-883df1772d2f", "type": "text", "text":{
"type": "Text", "body": "Olá bom dia", “menuItems”:[
{
option: 1, description: 'Opc 1'}
,{
option: 2, description: 'Opc 2'}
]
}
, “suggestionList”:[
{
option: 1, description: 'Opc 1'}
,{
option: 2, description: 'Opc 2'}
]
}
Menu
Mensagem do Bloco de Menu
Represetação Json
{
"to": "551198989999", // clientId "id": "6964beac-2e7e-4b18-b0c1-883df1772d2f", "type": "text", "text":{
"type": "Text", "body": "Olá bom dia", “menuItems”:[
{
option: 1, description: 'Opc 1'}
,{
option: 2, description: 'Opc 2'}
]
}
, “suggestionList”:[
{
option: 1, description: 'Opc 1'}
,{
option: 2, description: 'Opc 2'}
]
}
Mensagem do Bloco Imagem para o custom
Represetação Json
{
"to": "551198989999", // clientId "id": "ac692d2b-d62f-4b65-8d0d-7df40abd09c1", "type": "media", "media":{
"type": "Image", "file":{
"name": "Titulo do bot", "content": "URL da Imagem", "title": "Titulo da Imagem", "altText": "Texto Alternativo da Imagem"}
}
}
Mensagem do Bloco Carrousel para o custom
Represetação Json
{
"to": "551198989999", // clientId "id": "cdcb3c0b-ef15-407d-aed5-c2c757d9b4a9", "type": "carousel", "cards":[
{
"title": "Título do Card 01", "imageUrl": URL da imagem do card 01", "altText": "Descrição Imagem do card 01", "buttons":[
{
"name": "botão 1", "label": "Botão 01 card 01", "destination":{
"type": "url", "value": "URL de destino"}
}
,{
"name": "botão 2", "label": "Botão 02 card 01", "destination":{
"type": "item", "value": "666b226f4a10780b14d3c290"}
}
]
}
,{
"title": "Título do Card 02", "imageUrl": URL da imagem do card 02, "altText": "Descrição Imagem do card 02", "buttons":[
{
"name": "Botão 1", "label": "Botão 01 card 02", "destination":{
"type": "item", "value": "666b226f4a10780b14d3c28c"}
}
,{
"name": "botão 2", "label": "Botão 02 card 02", "destination":{
"type": "item", "value": "666b226f4a10780b14d3c292"}
}
,{
"name": "botão 3", "label": "Botão 03 card 02", "destination":{
"type": "item", "value": "666b226f4a10780b14d3c293"}
}
]
}
,{
"title": "Título do card 03", "imageUrl": " URL da imagem do card 03 ", "altText": "Descrição Imagem do card 03", "buttons":[
{
"name": "Botão 1", "label": "Botão 01 card 03", "destination":{
"type": "item", "value": "666b226f4a10780b14d3c28e"}
}
,{
"name": "botão 2", "label": "Botão 02 card 03", "destination":{
"type": "item", "value": "666b226f4a10780b14d3c28a"}
}
]
}
]
}
Action “clicked on the card button”
Represetação Json
{
"clientId": "551198989999", "action":{
"type": "CAROUSEL", "clickedCardTitle": "Título do Card Selecionado ", "clickedButtonLabel": "Botão 02 card 02", "destination":{
"value": "666b226f4a10780b14d3c292", "type": "item"}
}
}