Configuração de API e Webhook

Guia completo para configurar a automação WordPress-Instagram

📱 Configuração da API do Instagram

Atenção: A API do Instagram para postagem é restrita e requer aprovação. Alternativas podem ser necessárias.
1

Acessar o Facebook Developers

Como o Instagram é do Facebook, você precisa acessar o Facebook Developers.

Acessar Facebook Developers
2

Criar um Aplicativo

No Facebook Developers, crie um novo aplicativo:

  1. Clique em "Meus Apps" no menu superior
  2. Selecione "Criar App"
  3. Escolha o tipo de aplicativo (geralmente "Business")
  4. Preencha as informações solicitadas
3

Adicionar Produto do Instagram

No dashboard do seu aplicativo:

  1. Vá para a seção "Products"
  2. Clique em "+ Add Product"
  3. Selecione "Instagram" na lista
  4. Configure as permissões necessárias
4

Configurar OAuth

Na seção Instagram > Basic Display:

  1. Adicione um "Instagram Test User"
  2. Configure as URLs de redirecionamento OAuth
  3. Anote o App ID e App Secret
5

Solicitar Permissões de Publicação

Para postar via API, você precisa:

  1. Enviar seu aplicativo para revisão do Facebook
  2. Solicitar a permissão instagram_content_publish
  3. Fornecer um caso de uso claro para a automação
Este processo pode demorar vários dias e requer aprovação do Facebook.
6

Obter Token de Acesso

Após a aprovação, você precisará obter um token de acesso de longo prazo:

// URL de autenticação
https://api.instagram.com/oauth/authorize
  ?client_id={app-id}
  &redirect_uri={redirect-uri}
  &scope=instagram_content_publish
  &response_type=code
                    

🔑 Alternativas à API Oficial

Opção 1: API Graph do Facebook

Para contas comerciais vinculadas a uma Página do Facebook:

// Exemplo de requisição para API Graph
POST /{ig-user-id}/media
  ?image_url={image-url}
  &caption={caption}
  &access_token={access-token}

POST /{ig-user-id}/media_publish
  ?creation_id={creation-id}
  &access_token={access-token}
                    

Opção 2: Serviços de Terceiros

Serviços como IFTTT, Zapier ou Buffer oferecem integração com Instagram:

  • Configuração mais simples
  • Funcionalidades limitadas
  • Possibilidade de custos adicionais

🔄 Configuração de Webhook no WordPress

1

Instalar Plugin de Webhooks

No WordPress, instale um plugin para gerenciar webhooks. Recomendamos:

  • WP Webhooks
  • Webhook Ninja
  • Custom code via functions.php
Instalar WP Webhooks
2

Configurar Webhook para Novas Postagens

Configure o webhook para ser acionado quando uma nova postagem for publicada:

// Adicione este código ao functions.php do seu tema
add_action('publish_post', 'notify_new_post', 10, 2);

function notify_new_post($ID, $post) {
    $webhook_url = 'https://seuserver.com/instagram-automation';
    $data = array(
        'post_id' => $ID,
        'post_title' => get_the_title($ID),
        'post_content' => $post->post_content,
        'featured_image' => get_the_post_thumbnail_url($ID, 'full'),
        'post_url' => get_permalink($ID)
    );
    
    wp_remote_post($webhook_url, array(
        'body' => json_encode($data),
        'headers' => array('Content-Type' => 'application/json')
    ));
}
                    
3

Testar o Webhook

Após configurar, teste criando uma nova postagem e verificando se o webhook é acionado.

Você pode usar serviços como Webhook.site para testar.

🖼️ Processamento de Imagem

Adicionar Logo à Imagem Destacada

No seu servidor, crie um script para processar a imagem:

// Exemplo em PHP usando GD
$featured_image = imagecreatefromjpeg($image_url);
$logo = imagecreatefrompng($logo_url);

// Obter dimensões
$image_width = imagesx($featured_image);
$image_height = imagesy($featured_image);
$logo_width = imagesx($logo);
$logo_height = imagesy($logo);

// Calcular posição (canto inferior direito)
$margin = 20;
$logo_x = $image_width - $logo_width - $margin;
$logo_y = $image_height - $logo_height - $margin;

// Mesclar a logo com a imagem
imagecopy($featured_image, $logo, $logo_x, $logo_y, 0, 0, $logo_width, $logo_height);

// Salvar a imagem resultante
imagejpeg($featured_image, $output_path, 90);

// Liberar memória
imagedestroy($featured_image);
imagedestroy($logo);
                    

🖥️ Configuração do Servidor

1

Requisitos do Servidor

Seu servidor precisa ter:

  • PHP 7.4 ou superior
  • Extensão GD para processamento de imagem
  • Acesso para fazer requisições HTTP(S)
  • Cron jobs habilitados para agendamento
2

Script de Automação

Crie um script principal que será executado quando o webhook for acionado:

// instagram-automation.php
$data = json_decode(file_get_contents('php://input'), true);

if (!empty($data['post_id'])) {
    // Obter informações da postagem
    $post_id = $data['post_id'];
    $image_url = $data['featured_image'];
    
    // Download da imagem
    $image_path = download_image($image_url);
    
    // Processar imagem (adicionar logo)
    $processed_image = add_logo_to_image($image_path, $logo_path);
    
    // Publicar no Instagram
    $caption = $data['post_title'] . "\n\nLeia mais: " . $data['post_url'];
    $result = post_to_instagram($processed_image, $caption);
    
    // Registrar resultado
    log_result($post_id, $result);
}
                    
3

Configurar Cron Job (Opcional)

Para verificar postagens periodicamente caso o webhook falhe:

# Executar a cada hora
0 * * * * /usr/bin/php /caminho/para/instagram-automation.php

# Ou adicione ao crontab do seu servidor
crontab -e
                    

🔧 Solução de Problemas Comuns

Problema: API do Instagram não aprova aplicação

Solução: Use a abordagem alternativa com a API Graph do Facebook ou considere serviços de terceiros.

Problema: Webhook não está sendo acionado

Solução: Verifique se o plugin de webhooks está ativo e configurado corretamente.

Problema: Imagem não é processada corretamente

Solução: Verifique se a extensão GD está instalada no PHP e se as permissões de arquivo estão corretas.

Problema: Erro de autenticação no Instagram

Solução: Verifique se o token de acesso é válido e se não expirou.