Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP Link Preview API (WPPConnect Compatible)

Uma versão otimizada em PHP do wa-js-api-server projetada especificamente para rodar em hospedagens compartilhadas comuns (cPanel, HostGator, Locaweb) sem a necessidade de Node.js ou VPS.


🚀 Sobre o Projeto

Este microserviço gera meta tags (OpenGraph) e pré-visualizações de imagens de links da web. Ele foi recriado em PHP puro com arquitetura moderna e serve como "Drop-in Replacement" transparente para o sistema nativo do WPPConnect.

✨ Diferenciais e Funcionalidades

  • 100% PHP Nativo: Esqueça instâncias rodando 24h em Node.js ou a necessidade de instalar o Puppeteer/Chromium.
  • Esteganografia em PNG Dinâmico (fetch-data.png): Assim como no original, o JSON extraído é encodado de forma imperceptível nos canais R, G e B dos pixels de um minúsculo PNG transparente gerado nativamente via extensão GD. O WPPConnect lê esses pixels no navegador do cliente sem causar quebra de segurança ou CORS.
  • Hack de Memória IP (Anti-CDN): Exclusivo desta versão! CDNs e proxies (como Cloudflare ou LiteSpeed Cache) costumam apagar a Query String (o parâmetro ?url=) de rotas que terminam em .png. Para contornar essa falha de servidores, desenvolvemos um algoritmo de Memória por IP: Ao ler a rota .json milissegundos antes, o servidor anota e transfere a URL para o resgate do .png. Funciona de forma mágica em qualquer provedor!
  • Sistema de Cache Local: Evita o banimento/bloqueio por parte dos sites alvo. Todo site raspado via cURL fica no cache local /cache por 24 horas.
  • Proxy Anti-CORS (download-image): Baixa imagens seguras para os clientes sem risco de bloqueio cross-origin.

⚙️ Requisitos do Servidor

Qualquer hospedagem compartilhada rodando:

  • PHP 7.4+ (Recomendado 8.0+)
  • Extensões Nativas habilitadas: cURL, GD, DOM e JSON.
  • Apache ou Nginx com suporte a leitura de arquivos .htaccess.

📦 Como Instalar (Passo a Passo)

A instalação não requer acesso SSH ou terminal. Basta usar o FileZilla (FTP) ou o Gerenciador de Arquivos do cPanel.

  1. Baixe os arquivos e transfira todo o conteúdo desta pasta para dentro de um diretório na sua hospedagem (ex: public_html/link-preview).
  2. É de extrema importância que os arquivos ocultos (especialmente os dois .htaccess, um na raiz e um dentro de public/) sejam transferidos juntos.
  3. Se você não utiliza o Composer na hospedagem, não se preocupe: o arquivo public/index.php conta com um Autoloader Nativo (Fallback) embutido que fará a leitura das classes da pasta src/ no padrão PSR-4 automaticamente.
  4. O sistema irá gerar uma pasta cache/ automaticamente no primeiro acesso. (Certifique-se de que o PHP tenha permissão de escrita, chmod 755 ou 777 se necessário).

🔗 Integrando ao WPPConnect

Após subir para sua hospedagem, tudo funcionará transparente. Na inicialização (ou configuração) da biblioteca WPPConnect, mude a URL base de Link Preview para apontar para a sua hospedagem:

Onde antes estava o seu servidor em Node (ex: http://localhost:3000), aponte direto para o diretório raiz da hospedagem que abriga os nossos arquivos PHP.

Endpoints Disponíveis

A mágica do .htaccess que criamos manterá as rotas no mesmo formato que a biblioteca cliente em JavaScript espera consumir:

  • JSON: GET https://seu-dominio.com/link-preview/v1/link-preview/fetch-data.json?url=...
  • Esteganografia: GET https://seu-dominio.com/link-preview/v1/link-preview/fetch-data.png?url=...
  • Proxy: GET https://seu-dominio.com/link-preview/v1/link-preview/download-image?url=...

🧠 Arquitetura Limpa (MVC)

  • public/index.php - Ponto de entrada (Front Controller) e Autoloader fallback.
  • src/Router.php - Tratativa HTTP, Roteamento e Hack da Memória IP.
  • src/LinkPreviewService.php - Extrator usando ext-curl e DOMDocument (Disfarce User-Agent WhatsApp).
  • src/PngEncoder.php - Conversão algorítmica de texto JSON para binário PNG R/G/B.
  • src/FileCache.php - Controlador de arquivos locais (.txt e .json).

Feito com 💜 para a comunidade WPPConnect e todos que não podem ou não querem administrar instâncias VPS!

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages