Documentação Oficial

NetFluxo VideoChat API

1. Como Funciona a Integração

A plataforma NetFluxo VideoChat foi desenvolvida com arquitetura de microsserviço isolado. Isso significa que você não precisa instalar bibliotecas pesadas de Node.js, WebSockets ou WebRTC dentro da sua hospedagem:

1. Chave & Domínio O chat valida sua API Key contra o seu domínio autorizado, prevenindo pirataria e uso indevido.
2. Frontend Nativo Basta 1 único arquivo index.php leve hospedado no seu servidor para carregar a sala.
3. Servidores NetFluxo Toda a transmissão de áudio, vídeo, sinalização e moderação roda na nuvem de alta capacidade da NetFluxo.

2. Instalação Básica (.ZIP)

Para colocar sua primeira sala no ar leva menos de 2 minutos:

  1. Baixe o pacote: Acesse seu painel Minhas Compras e clique no botão Baixar Módulo (.ZIP) correspondente à sala contratada.
  2. Descompacte: Extraia o arquivo no seu computador. Você encontrará o arquivo index.php e o arquivo de instruções LEIA-ME.txt.
  3. Envie para sua Hospedagem: No Gerenciador de Arquivos do cPanel (ou via FTP), vá até a pasta public_html e crie uma pasta para o chat, por exemplo: public_html/videochat/.
  4. Pronto! Acesse pelo seu navegador:
    https://seudominio.com.br/videochat/

3. Hub Central vs Pastas Dedicadas

Se você contratou mais de uma sala para o mesmo domínio (ex: uma sala temática de CASAIS e outra de CULINÁRIA e etc...), você pode escolher como deseja exibi-las aos seus usuários:

Opção 1 (Recomendada)

Hub Central com Cards (Lobby)

Todas as salas ficam disponíveis em um único endereço (ex: /videochat/). Ao abrir a página, o usuário vê os cards de cada sala ativa com contadores de participantes em tempo real e clica para entrar na que desejar.

$salaPadraoDestaPasta = ''; // Deixe vazio!
Opção 2

Pastas Dedicadas (Links Separados)

Você cria pastas diferentes no seu servidor (ex: /sala-vip/ e /sala-geral/). Cada pasta entra diretamente na sala correspondente sem passar pela seleção de cards.

$salaPadraoDestaPasta = 'slug-da-sala';

4. Anatomia do index.php

Veja abaixo a estrutura do arquivo index.php oficial com suporte a dados sociais e multi-salas:

index.php PHP 7.4+ / 8.x
<?php
/**
 * NETFLUXO VIDEOCHAT - MÓDULO DE INTEGRAÇÃO NATIVO (MULTI-SALAS)
 */

// 1. Mapeamento de Chaves por Sala (Todas as suas salas ativas)
$apiKeys = [
    'sala-vip'    => 'netfluxo_fe2b61dbea1047b19459571e8bd41f2d',
    'sala-casais' => 'netfluxo_a97a71817ec38a7e6911d155539eed1e'
];

$siteIdentifier = 'seudominio.com.br'; // Seu domínio autorizado

// 2. Integração com Sessão de Usuários Logados (Opcional, porém Recomendado)
$paramName     = $_SESSION['nome_completo'] ?? ''; 
$paramUserId   = $_SESSION['user_id']       ?? ''; 
$paramUsername = $_SESSION['usuario']       ?? ''; 

// NOVOS PARÂMETROS SOCIAIS:
$paramAvatar   = $_SESSION['foto_perfil']   ?? ''; // URL absoluta da foto
$paramGender   = $_SESSION['genero']        ?? 'genderless'; // mars, venus, venus-mars, etc.
$rawAbout      = $_SESSION['bio']           ?? ''; 
$paramCurte    = !empty($rawAbout) ? mb_substr(strip_tags($rawAbout), 0, 50, 'UTF-8') : '';

// 3. Favicon da janela
$favIcon = "https://seudominio.com.br/favicon.ico";

// 4. Modo de Exibição: deixe vazio '' para Lobby ou coloque a slug para entrar direto
$salaPadraoDestaPasta = ''; 

$paramSala = $_GET['sala'] ?? $salaPadraoDestaPasta;

// Identifica HTTPS dinamicamente
$isHttps = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https'));
$protocolo = $isHttps ? 'https://' : 'http://';
$caminhoLimpo = strtok($_SERVER['REQUEST_URI'] ?? '/', '?');
$paramAppUrl  = $protocolo . $_SERVER['HTTP_HOST'] . $caminhoLimpo;

$keysJson = json_encode($apiKeys);

// URL da Antessala com todos os parâmetros sociais anexados
$antessalaUrl = "https://videochat.netfluxo.com.br/antessala.html?" . http_build_query([
    'domain'   => $siteIdentifier,
    'keys'     => $keysJson,
    'name'     => $paramName,
    'user_id'  => $paramUserId,
    'username' => $paramUsername,
    'avatar'   => $paramAvatar,
    'gender'   => $paramGender,
    'curte'    => $paramCurte,
    'app_url'  => $paramAppUrl,
    'sala'     => $paramSala
]);
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
  <title>VideoChat | <?= htmlspecialchars($siteIdentifier) ?></title>
  <link rel="icon" type="image/x-icon" href="<?= $favIcon; ?>">
  <style>
    * { margin: 0; padding: 0; box-sizing: border-box; }
    html, body { width: 100%; height: 100%; height: 100dvh; overflow: hidden; background: #070b14; position: fixed; top: 0; left: 0; }
    iframe { position: absolute; top: 0; left: 0; width: 100vw; height: 100%; border: none; display: block; }
  </style>
</head>
<body>
  <iframe src="<?= htmlspecialchars($antessalaUrl, ENT_QUOTES, 'UTF-8') ?>" allow="camera; microphone; display-capture; autoplay; clipboard-write" allowfullscreen></iframe>
</body>
</html>

5. Integração com Sessão de Usuários Logados & Perfil Social

Se o seu site já possui sistema de login (como WordPress, WoWonder, phpBB, Laravel ou sistema proprietário), você pode preencher as variáveis do topo do index.php para que os usuários entrem na sala já identificados com foto, gênero e bio, sem precisar digitar apelido:

$paramName: Nome de exibição do participante (Ex: "Mariano Alencar"). Se vazio, o chat abre um campo no lobby para ele escolher como quer ser chamado.
$paramUserId: ID numérico ou alfanumérico único no seu banco de dados. Muito importante: é esta chave que os moderadores utilizam para aplicar banimentos permanentes, evitando que participantes suspensos alterem o apelido para retornar à sala.
$paramUsername: Login único / arroba do usuário (Ex: "marianoalencar"). Sanitizado automaticamente sem espaços ou caracteres especiais.
$paramAvatar: URL pública completa da imagem de perfil (Ex: https://seusite.com/uploads/foto.jpg). Se não informado ou se a imagem quebrar (404), o crachá gera automaticamente uma inicial estilizada com gradiente.
$paramGender: Chave de gênero correspondente ao FontAwesome 4.7 (Ex: mars, venus, venus-mars, etc.)[cite: 1]. Renderiza uma mini-medalha colorida sobreposta ao avatar. Veja a lista completa na seção abaixo.
$paramCurte: Texto curto de bio ou preferências do perfil (Ex: "Casal liberal, viagens e resenha"). Exibido na segunda linha do crachá com o ícone ✨. Recomendado até 50 caracteres para manter a harmonia visual em telas mobile.

6. Tabela de Gêneros Suportados (FontAwesome 4.7)

O NetFluxo VideoChat possui mapeamento nativo para todas as 14 categorias de gênero do FontAwesome 4.7, exibindo mini-medalhas coloridas sobrepostas à foto de cada participante[cite: 1]:

Categoria Chave no PHP ($paramGender) Símbolo / Ícone Cor da Medalha Sinônimos / Apelidos
Masculino Clássico mars #2563eb male, m, masculino
Homossexual Masculino (Gay) mars-double #0284c7 -
Marte Variações mars-stroke, mars-stroke-h, mars-stroke-v #0369a1 -
Feminino Clássico venus #ec4899 female, f, feminino
Homossexual Feminino (Lésbica) venus-double #d946ef -
Casal / Misto / Bissexual venus-mars #0d9488 casal, bissexual
Transgênero transgender #8b5cf6 trans
Transgênero Alternativo transgender-alt #7c3aed -
Intersexo intersex #9333ea -
Não-Binário / Mercúrio mercury #f59e0b nao-binario
Neutro neuter #64748b -
Agênero (Sem Gênero) genderless #475569 padrao se nulo

7. Credenciais Agora.io (Exclusivo Sala Privada)

Se você contratou a modalidade de Sala Exclusiva, sua sala opera com conexão WebRTC dedicada de alta performance através da infraestrutura global da Agora.io. Siga este tutorial passo a passo para gerar suas credenciais gratuitas:

Passo 1: Criar Conta no Console

Acesse o portal oficial em console.agora.io e crie uma conta gratuita (você ganha 10.000 minutos grátis todos os meses).

Passo 2: Criar Projeto

No menu lateral esquerdo, clique em Project Management e em seguida no botão azul Create a Project.

Passo 3: Modo de Autenticação Seguro

Ao criar o projeto, selecione a opção de autenticação: APP ID + APP Certificate (Token Security).

Passo 4: Copiar e Salvar

Copie o seu App ID e clique no ícone do olho para copiar o seu App Certificate primário. Volte ao seu painel Minhas Compras no NetFluxo, clique no botão azul Configurações (Agora.io) da sua sala e cole os dois valores.

8. Perguntas Frequentes (FAQ)

Por que a câmera ou o microfone não abrem no navegador?

Os navegadores modernos (Chrome, Safari, Firefox, Edge) exigem obrigatoriamente certificado SSL (HTTPS) para permitir acesso à câmera e microfone. Certifique-se de que o seu site possui https:// ativo no endereço (http:// não funciona).

Como funciona a moderação das salas?

O administrador cadastrado no momento da criação da sala possui ferramentas nativas dentro do próprio chat: botão para mutar microfones, fechar câmeras de participantes impróprios, expulsar ou banir definitivamente por IP/User ID. Inclusive ao ponderar, o administrador tem à sua disposição a lista de histórico daquele usuário, para avaliar se perdoa ou não.

O que acontece se eu não pagar a mensalidade Pro?

Caso a mensalidade não seja renovada, a sala passa automaticamente para o modo Gratuito (Trial), limitado a até 4 participantes simultâneos em topologia WebRTC Mesh, sem garantia de conexão em dispositivos móveis. Ao efetuar o pagamento, a sala retorna imediatamente ao status Pro ilimitado.