Workflow simples para postar fotos automaticamente no Instagram a partir de um diretório no VPS Hostinger

Neste artigo, você descobrirá como criar um workflow simples para postar fotos automaticamente no Instagram a partir de um diretório hospedado em seu VPS da Hostinger. Vamos orientar passo a passo, desde a preparação do servidor até a automação com scripts e tarefas agendadas, garantindo que suas publicações ocorram sem esforço.

Preparação do VPS Hostinger

Antes de automatizar as publicações, é essencial que o seu VPS esteja pronto para executar scripts e acessar a internet de forma segura. Siga estas etapas:

  • Acesse o painel da Hostinger e abra o terminal SSH do seu VPS.
  • Atualize o sistema para evitar conflitos: sudo apt update && sudo apt upgrade -y.
  • Instale Python 3 e o gerenciador de pacotes pip: sudo apt install python3 python3-pip -y.
  • Crie um diretório dedicado às imagens, por exemplo /var/www/instagram_images, e conceda as permissões corretas.
  • Instale as bibliotecas necessárias para interagir com a API do Instagram: pip3 install requests python-dotenv.
  • Obtenha um token de acesso da Instagram Graph API (necessário uma conta de negócios vinculada a uma página do Facebook).

Com o ambiente preparado, você já tem um local organizado onde as fotos serão armazenadas e as dependências prontas para o próximo passo.

Automação da publicação

Agora que o servidor está configurado, vamos criar um script que lê as imagens do diretório e as publica no Instagram, e, em seguida, agendar sua execução.

  • Crie um arquivo post_to_instagram.py no seu VPS com o seguinte esqueleto:
import os
import requests
from dotenv import load_dotenv

load_dotenv()  # Carrega token e ID da conta a partir de .env

ACCESS_TOKEN = os.getenv('INSTAGRAM_ACCESS_TOKEN')
ACCOUNT_ID   = os.getenv('INSTAGRAM_ACCOUNT_ID')
IMAGE_DIR    = '/var/www/instagram_images'

def publicar_imagem(caminho):
    # 1️⃣ Envia a imagem para o container da API
    url_media = f"https://graph.facebook.com/v16.0/{ACCOUNT_ID}/media"
    payload = {
        'image_url': f'file://{caminho}',
        'caption'  : 'Foto automática via VPS #Hostinger',
        'access_token': ACCESS_TOKEN
    }
    resp = requests.post(url_media, data=payload)
    media_id = resp.json().get('id')

    # 2️⃣ Publica o media_id
    url_publish = f"https://graph.facebook.com/v16.0/{ACCOUNT_ID}/media_publish"
    resp = requests.post(url_publish, data={'creation_id': media_id, 'access_token': ACCESS_TOKEN})
    return resp.json()

def main():
    for arquivo in sorted(os.listdir(IMAGE_DIR)):
        caminho = os.path.join(IMAGE_DIR, arquivo)
        if os.path.isfile(caminho) and arquivo.lower().endswith(('.jpg', '.png')):
            result = publicar_imagem(caminho)
            print(f'Publicada {arquivo}:', result)
            os.remove(caminho)  # Remove a foto depois de postar

if __name__ == '__main__':
    main()
  • Crie um arquivo .env ao lado do script com as credenciais da API:
INSTAGRAM_ACCESS_TOKEN=seu_token_aqui
INSTAGRAM_ACCOUNT_ID=seu_id_da_conta_aqui
  • Teste o script manualmente: python3 post_to_instagram.py. Verifique se as imagens são publicadas e removidas.
  • Agende a execução automática usando cron. Edite a crontab com crontab -e e adicione:
0 * * * * /usr/bin/python3 /caminho/para/post_to_instagram.py >> /var/log/insta_auto.log 2>&1

Esta linha executa o script a cada hora, garantindo que novas fotos adicionadas ao diretório sejam publicadas sem intervenção humana.

Opcionalmente, você pode aprimorar o fluxo adicionando:

  • Um log mais detalhado para rastrear falhas.
  • Um script de backup que move imagens não postadas para um diretório de erro.
  • Integração com webhooks para receber notificações no Telegram ou Slack.

Com esses ajustes, seu VPS Hostinger funciona como um motor de conteúdo totalmente autônomo para o Instagram.

Conclusão

Com o ambiente configurado e o script de publicação programado, seu VPS Hostinger se torna um motor automático de conteúdo para o Instagram. Assim, você economiza tempo,

Como Automatizar o Upload de Fotos no Instagram Usando n8n e Hostinger

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *