
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.pyno 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
.envao 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 -ee 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,
