Índice
- Informações Gerais
- Contextos de Chatbots
- Treinamento de Chatbots
- Recursos Adicionais
- API – Autenticação Remota
- API – Conversas com Chatbots
Visão Geral
Esta API permite acessar o chatbot criado na Nevolus para envio de perguntas e recebimento de respostas. As conversas são registradas no sistema da mesma forma que as interações dos usuários feitas diretamente na interface do chatbot.
Endpoint
POST https://sua_url_nevolus/wp-json/mwai/v1/simpleChatbotQuery
Autenticação
A autenticação é feita via Bearer Token cadastrado na sua conta. Inclua o token no cabeçalho da requisição HTTP:
Authorization: Bearer <SEU_TOKEN>
- O Bearer Token deve ser mantido em sigilo.
Exemplo de chamada cURL
curl -X POST https://sua_url_nevolus/wp-json/mwai/v1/simpleChatbotQuery \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <SEU_TOKEN>" \
-d '{
"botId": "ID",
"message": "Olá, tudo bem?"
}'
- chatId: campo opcional para continuidade da conversa (dado obtido na primeira resposta).
Resposta de Sucesso (HTTP 200)
{
"success": true,
"data": "Olá! Como posso ajudar você hoje?",
"extra": {
"actions": [],
"chatId": "68c2cc939e1ca"
}
}
- data: resposta do chatbot.
- chatId: identificador da conversa. Use este valor no corpo da requisição para manter o contexto da conversa em mensagens subsequentes.
Erros Comuns
Bearer Token ou Username inválido:
{
"code": "rest_forbidden",
"message": "Sem permissão para fazer isso.",
"data": {
"status": 401
}
}
Descrição do Fluxo das Conversas
1. Solicite a mensagem (pergunta) do usuário.
2. Monte o array dos dados com: URL da API, Bearer Token, mensagem do usuário e botId.
3. Se houver um chatId, inclua-o nos dados.
4. Realize requisição HTTP POST para a API, enviando os dados em formato JSON.
5. Receba a resposta da API com a resposta do chatbot e o chatId em formato JSON.
6. Solicite nova mensagem para o usuário, reiniciando o fluxo.
Exemplos de scripts interativos
Os scripts a seguir implementam um chat interativo via terminal com o chatbot, autenticando-se via Bearer Token (SEU_TOKEN), informando o ID do chatbot, e mantendo o contexto da conversa usando o chatId retornado pela API. O usuário pode encerrar a conversa digitando “sair” ou “exit”.
Em PHP:
<?php
$api_url = 'https://sua_url_nevolus/wp-json/mwai/v1/simpleChatbotQuery';
$bearer_token = 'SEU_TOKEN';
function enviar_mensagem($message, $chatId = null) {
global $api_url, $bearer_token;
$data = [
'message' => $message,
'botId' => 'ID'
];
if ($chatId) {
$data['chatId'] = $chatId;
}
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer ' . $bearer_token
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Erro no cURL: ' . curl_error($ch) . PHP_EOL;
exit(1);
}
curl_close($ch);
return json_decode($response, true);
}
$message = readline("Você: ");
$chatId = null;
while (strtolower(trim($message)) !== 'sair' && strtolower(trim($message)) !== 'exit') {
$result = enviar_mensagem($message, $chatId);
if (isset($result['success']) && $result['success'] && isset($result['data'])) {
echo "Bot: " . $result['data'] . PHP_EOL;
if (isset($result['extra']['chatId'])) {
$chatId = $result['extra']['chatId'];
}
} else {
echo "Erro na resposta da API:\n";
print_r($result);
break;
}
$message = readline("Você: ");
}
echo "Conversa encerrada.\n";
- Uso: php chatbot_interativo.php
Em Python:
import requests
import sys
API_URL = "https://sua_url_nevolus/wp-json/mwai/v1/simpleChatbotQuery"
BEARER_TOKEN = "SEU_TOKEN"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {BEARER_TOKEN}"
}
chat_id = None
while True:
message = input("Você: ")
if message.strip().lower() in ["sair", "exit"]:
print("Conversa encerrada.")
break
data = {
"message": message,
"botId": "ID"
}
if chat_id:
data["chatId"] = chat_id
response = requests.post(API_URL, json=data, headers=headers)
if response.status_code == 200:
result = response.json()
if result.get("success") and "data" in result:
print("Bot:", result["data"])
chat_id = result.get("extra", {}).get("chatId", chat_id)
else:
print("Erro na resposta da API:", result)
break
else:
print("Erro HTTP:", response.status_code, response.text)
break
- Uso: python chatbot_interativo.py
Em caso de dúvidas sobre integração, entre em contato consoco.
