Guia completo para configurar a automação WordPress-Instagram
Como o Instagram é do Facebook, você precisa acessar o Facebook Developers.
Acessar Facebook DevelopersNo Facebook Developers, crie um novo aplicativo:
No dashboard do seu aplicativo:
Na seção Instagram > Basic Display:
Para postar via API, você precisa:
instagram_content_publishApó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
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}
Serviços como IFTTT, Zapier ou Buffer oferecem integração com Instagram:
No WordPress, instale um plugin para gerenciar webhooks. Recomendamos:
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')
));
}
Após configurar, teste criando uma nova postagem e verificando se o webhook é acionado.
Você pode usar serviços como Webhook.site para testar.
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);
Seu servidor precisa ter:
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);
}
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: Use a abordagem alternativa com a API Graph do Facebook ou considere serviços de terceiros.
Solução: Verifique se o plugin de webhooks está ativo e configurado corretamente.
Solução: Verifique se a extensão GD está instalada no PHP e se as permissões de arquivo estão corretas.
Solução: Verifique se o token de acesso é válido e se não expirou.