Quando você visualiza uma postagem remota no Mastodon, sua instância armazena uma cópia em cache. Às vezes, essa cópia fica desatualizada ou não carrega completamente, exibindo um erro genérico ou conteúdo faltando. Isso acontece porque o Mastodon busca postagens remotas de forma preguiçosa e não as atualiza automaticamente. Este artigo explica como forçar sua instância a re-fetch uma postagem remota específica usando a API REST do Mastodon. Você aprenderá o endpoint exato da API, a autenticação necessária e como verificar o resultado. Não é necessária experiência em programação além de enviar uma única requisição HTTP.
Principais Pontos: Rebuscar uma Postagem Remota do Mastodon via API
- POST /api/v1/statuses/:id/reblog: Dispara um re-fetch da postagem remota quando chamado com um token OAuth válido e o ID da postagem.
- Token Bearer OAuth: Necessário para todas as chamadas autenticadas à API; crie um em Preferências > Desenvolvimento > Nova Aplicação.
- ID da postagem na URL: O número no final da URL da postagem é o valor a ser usado no caminho da API.
Por que uma Postagem Remota Precisa de Re-Fetch Manual
As instâncias do Mastodon não consultam servidores remotos em busca de atualizações. Quando você visualiza uma postagem de outra instância, sua instância a busca uma vez e armazena uma cópia local. Se a postagem remota for editada, excluída ou foi buscada originalmente com erro, sua instância nunca atualiza automaticamente a versão em cache. O endpoint da API para reblogar uma postagem, POST /api/v1/statuses/:id/reblog, na verdade força sua instância a re-fetch a postagem remota antes de criar o reblog. Esse efeito colateral é a única forma nativa de atualizar o cache de uma postagem remota. O método funciona em qualquer versão do Mastodon que suporte a API REST padrão.
O que Acontece Durante o Re-Fetch
Quando você envia a requisição de reblog, sua instância contata a instância remota para obter a versão mais recente da postagem. Se a postagem remota ainda existir e estiver acessível, sua instância atualiza o banco de dados local com os dados novos. Em seguida, cria um reblog a partir da sua conta. Se o reblog já existir, a API retorna um erro, mas o re-fetch ainda ocorre. Isso significa que você pode usar o endpoint mesmo se já tiver impulsionado a postagem — o re-fetch acontece antes do erro ser retornado.
Passos para Rebuscar uma Postagem Remota do Mastodon Usando a API
Siga estes passos para disparar manualmente um re-fetch. Você precisará de uma conta no Mastodon, um token de aplicativo cliente e a URL exata da postagem remota.
- Encontre o ID da Postagem na URL da Postagem Remota
Abra a postagem remota no seu navegador. A URL termina com um ID numérico, por exemplohttps://mastodon.social/@user/109876543210987654. O último número é o ID da postagem. Copie exatamente. - Crie um Token de Aplicativo para a API
Vá em Preferências > Desenvolvimento > Nova Aplicação. Dê um nome como “Ferramenta de Re-Fetch Manual”. Ative o escopowrite:statuses. Clique em Enviar. Copie a string “Seu token de acesso”. Este é o token Bearer que você usará na chamada da API. - Prepare a Requisição à API
Você precisa de um cliente HTTP. Use curl, Postman ou qualquer ferramenta que possa enviar requisições POST. A URL do endpoint éhttps://suainstancia.social/api/v1/statuses/IDPOSTAGEM/reblog. Substituasuainstancia.socialpelo domínio da sua instância eIDPOSTAGEMpelo ID numérico do passo 1. - Envie a Requisição POST com Autenticação
Adicione um cabeçalho HTTPAuthorization: Bearer SEU_TOKEN. SubstituaSEU_TOKENpelo token do passo 2. Envie a requisição. Exemplo usando curl:curl -X POST -H "Authorization: Bearer abc123" https://mastodon.exemplo/api/v1/statuses/109876543210987654/reblog. - Verifique a Resposta
Se bem-sucedido, a API retorna um objeto JSON representando o novo status de reblog. Se o reblog já existir, você receberá um erro como422 Unprocessable Entity. Em ambos os casos, o re-fetch já ocorreu. Verifique recarregando a postagem remota no seu navegador — o conteúdo agora deve estar atualizado.
Problemas Comuns ao Rebuscar uma Postagem Remota
Erro “Registro Não Encontrado” ao Enviar a Requisição
Esse erro significa que o ID da postagem não existe na sua instância. A postagem remota pode ter sido excluída, ou você nunca a acessou a partir da sua instância. Visite a URL da postagem no seu navegador primeiro para garantir que sua instância a armazene em cache. Depois, tente novamente a chamada à API.
Erro “Não Autorizado” ou “Proibido”
Seu token OAuth é inválido ou não possui o escopo write:statuses. Volte em Preferências > Desenvolvimento, edite sua aplicação e confirme que o escopo está ativado. Gere um novo token se necessário.
O Re-Fetch Não Atualiza o Conteúdo da Postagem
Se a postagem remota foi editada após sua instância armazená-la em cache, o re-fetch deve trazer o novo conteúdo. Se não trouxer, a instância remota pode estar bloqueando sua instância ou a postagem pode ser de uma conta privada. A API só pode buscar postagens que estejam publicamente acessíveis para sua instância.
Re-Fetch via API vs Recarregamento do Navegador: Principais Diferenças
| Item | Re-Fetch via API | Recarregamento do Navegador |
|---|---|---|
| Dispara atualização do cache no servidor | Sim | Não |
| Requer autenticação | Sim (token OAuth) | Não |
| Atualiza o banco de dados local | Sim | Não |
| Pode ser automatizado | Sim | Não |
O recarregamento do navegador apenas atualiza a página HTML renderizada pela sua instância. Ele não contata o servidor remoto para obter dados atualizados da postagem. Apenas o re-fetch via API força sua instância a puxar a versão mais recente do servidor remoto.
Agora você pode rebuscar manualmente qualquer postagem remota do Mastodon usando o endpoint de reblog da API. Use este método quando uma postagem aparecer incompleta ou desatualizada na sua linha do tempo. Para uso repetido, considere escrever um pequeno script que aceite uma URL de postagem e envie a chamada à API automaticamente. O mesmo endpoint também funciona para postagens da mesma instância, mas essas já estão atualizadas.