{"id":174,"date":"2026-09-14T19:18:27","date_gmt":"2026-09-14T22:18:27","guid":{"rendered":"https:\/\/postping.com.br\/blog\/publicar-facebook-sem-app-proprio\/"},"modified":"2026-09-14T19:18:27","modified_gmt":"2026-09-14T22:18:27","slug":"publicar-facebook-sem-app-proprio","status":"publish","type":"post","link":"https:\/\/postping.com.br\/blog\/publicar-facebook-sem-app-proprio\/","title":{"rendered":"Publicar no Facebook automaticamente sem criar um app pr\u00f3prio"},"content":{"rendered":"<p>No fim deste guia, um artigo publicado no seu WordPress aparece na P\u00e1gina do Facebook sem que voc\u00ea tenha criado aplicativo nenhum no painel de desenvolvedor da Meta e sem ter enviado nada para revis\u00e3o. O caminho \u00e9 oficial, usa a mesma Graph API de quem mant\u00e9m app pr\u00f3prio, e a \u00fanica coisa que muda \u00e9 de quem \u00e9 o aplicativo que assina o pedido.<\/p>\n<h2>Decida em qual das duas rotas voc\u00ea est\u00e1<\/h2>\n<p>Todo pedido \u00e0 Graph API sai de algum aplicativo registrado na Meta, ent\u00e3o a escolha nunca \u00e9 entre ter app e n\u00e3o ter: \u00e9 entre o app ser seu ou ser de quem te vende a integra\u00e7\u00e3o. Quem registra o pr\u00f3prio app cai na r\u00e9gua de n\u00edveis de acesso, e ela \u00e9 mais dura do que parece na primeira leitura.<\/p>\n<p>A documenta\u00e7\u00e3o de n\u00edveis de acesso diz que permiss\u00f5es em Standard Access s\u00f3 podem ser pedidas a usu\u00e1rios que tenham um papel no aplicativo que est\u00e1 pedindo. Na pr\u00e1tica: voc\u00ea cria o app, conecta a sua P\u00e1gina, funciona; o s\u00f3cio tenta conectar a P\u00e1gina dele e recebe erro, porque ele n\u00e3o \u00e9 desenvolvedor nem testador do seu app. Para sair disso \u00e9 preciso Advanced Access, e a\u00ed a Meta exige verifica\u00e7\u00e3o de neg\u00f3cio, escrito sem meio-termo na <a href=\"https:\/\/developers.facebook.com\/docs\/graph-api\/overview\/access-levels\" rel=\"nofollow\">pr\u00f3pria documenta\u00e7\u00e3o<\/a>: Business Verification \u00e9 obrigat\u00f3ria para obter Advanced Access, e em alguns casos ainda h\u00e1 revis\u00e3o individual por permiss\u00e3o.<\/p>\n<p>A p\u00e1gina de verifica\u00e7\u00e3o de neg\u00f3cio acrescenta duas informa\u00e7\u00f5es que pegam ag\u00eancia desprevenida. Desde 1\u00ba de fevereiro de 2023, um app que precise de acesso avan\u00e7ado pode ter que concluir a verifica\u00e7\u00e3o. E s\u00f3 algu\u00e9m com papel de administrador no Business consegue concluir o processo, o que significa documento de empresa, n\u00e3o de pessoa f\u00edsica. Depois de aprovado, o app com Advanced Access ainda passa pelo Data Use Checkup uma vez por ano para continuar valendo.<\/p>\n<p>A rota do app pr\u00f3prio tem um ganho concreto, e ele n\u00e3o \u00e9 t\u00e9cnico. O <a href=\"https:\/\/wordpress.org\/plugins\/facebook-auto-publish\/\" rel=\"nofollow\">WP2Social Auto Publish<\/a>, com mais de 9 mil instala\u00e7\u00f5es ativas, responde no pr\u00f3prio FAQ por que obriga o usu\u00e1rio a criar o aplicativo: assim o post n\u00e3o sai com a atribui\u00e7\u00e3o do tipo <em>shared via<\/em> apontando para o app de outra pessoa. Se a sua marca aparece no rodap\u00e9 de cada publica\u00e7\u00e3o e isso importa para o cliente, o custo da verifica\u00e7\u00e3o se justifica. Se ningu\u00e9m nunca reparou nesse rodap\u00e9, voc\u00ea est\u00e1 pagando semanas de burocracia por um detalhe que o seu p\u00fablico n\u00e3o v\u00ea.<\/p>\n<p>A rota oposta j\u00e1 est\u00e1 documentada com essas palavras em plugin p\u00fablico. O <a href=\"https:\/\/wordpress.org\/plugins\/arrow-publisher-for-business-pages\/\" rel=\"nofollow\">Arrow Publisher<\/a> responde no FAQ que n\u00e3o exige app de desenvolvedor pr\u00f3prio porque usa um servi\u00e7o central de conex\u00e3o para o OAuth do Facebook, e descreve o que acontece depois: o token da P\u00e1gina escolhida fica guardado no site em forma criptografada. Essas duas frases descrevem o desenho de qualquer integra\u00e7\u00e3o dessa rota, e s\u00e3o as duas perguntas a fazer para quem te vender uma: de quem \u00e9 o app, e onde fica o token.<\/p>\n<p>Quando essa etapa falha, o sintoma \u00e9 sempre o mesmo: a conex\u00e3o funciona para uma pessoa e para mais ningu\u00e9m. Antes de abrir chamado, olhe em qual n\u00edvel o app est\u00e1. Se estiver em Standard Access e voc\u00ea n\u00e3o pretende verificar o neg\u00f3cio agora, a sa\u00edda provis\u00f3ria \u00e9 dar papel de desenvolvedor ou testador no app a quem precisa conectar, sabendo que isso n\u00e3o escala para clientes.<\/p>\n<h2>Garanta o papel certo na P\u00e1gina antes de clicar em conectar<\/h2>\n<p>Nenhum aplicativo de terceiro resolve essa etapa por voc\u00ea. A documenta\u00e7\u00e3o da Pages API \u00e9 direta: para conseguir um token de um usu\u00e1rio, esse usu\u00e1rio precisa ser dono da P\u00e1gina ou conseguir executar uma <em>task<\/em> nela. A task que interessa para publicar chama-se <code>CREATE_CONTENT<\/code>, descrita como publicar na P\u00e1gina.<\/p>\n<p>Papel no aplicativo e papel na P\u00e1gina s\u00e3o coisas separadas. D\u00e1 para ser administrador do app e n\u00e3o conseguir publicar em P\u00e1gina nenhuma, e d\u00e1 para ser o dono da P\u00e1gina e ainda assim receber uma lista vazia se o login foi feito com o perfil errado. Quem administra v\u00e1rias contas de cliente costuma ter dois perfis abertos no mesmo navegador, e o login do Facebook pega o que estiver ativo.<\/p>\n<p>A verifica\u00e7\u00e3o dessa etapa \u00e9 uma chamada s\u00f3. Depois de autorizar, o app consulta <code>\/me\/accounts<\/code>, que devolve o id e o token de acesso de cada P\u00e1gina que aquele usu\u00e1rio liberou. Se a resposta vem com a lista vazia, pare ali: nenhuma etapa seguinte vai funcionar. As causas mais comuns s\u00e3o o perfil errado no login, a P\u00e1gina pertencer a um portf\u00f3lio empresarial em que voc\u00ea recebeu acesso a m\u00e9tricas mas n\u00e3o a publica\u00e7\u00e3o, ou a permiss\u00e3o de listagem n\u00e3o ter sido concedida na tela de consentimento.<\/p>\n<p>Quando a etapa d\u00e1 certo, o que voc\u00ea ganha \u00e9 um tipo de credencial diferente da que entrou. Um token de usu\u00e1rio de longa dura\u00e7\u00e3o dura cerca de 60 dias, segundo a documenta\u00e7\u00e3o de tokens da Meta. O token de P\u00e1gina obtido a partir dele n\u00e3o tem data de validade e s\u00f3 expira ou \u00e9 invalidado sob certas condi\u00e7\u00f5es, nas palavras da mesma p\u00e1gina. Na rotina de quem mant\u00e9m o site, isso quer dizer que a conex\u00e3o n\u00e3o cai por calend\u00e1rio, cai por evento: troca de senha, remo\u00e7\u00e3o de papel na P\u00e1gina, revis\u00e3o de permiss\u00f5es do lado do usu\u00e1rio. Se a sua j\u00e1 caiu antes, os gatilhos est\u00e3o destrinchados em <a href=\"https:\/\/postping.com.br\/blog\/token-meta-expirado\/\">token da Meta expirado raramente \u00e9 um prazo que venceu<\/a>.<\/p>\n<h2>Autorize as tr\u00eas permiss\u00f5es que o feed da P\u00e1gina exige<\/h2>\n<p>A refer\u00eancia do endpoint de feed da P\u00e1gina lista o que precisa estar concedido para o <code>POST<\/code> ser aceito, al\u00e9m do token de P\u00e1gina pedido por algu\u00e9m com a task de criar conte\u00fado:<\/p>\n<ul>\n<li><code>pages_show_list<\/code>, que permite ao app enumerar as P\u00e1ginas que voc\u00ea administra e \u00e9 o que alimenta a lista de escolha;<\/li>\n<li><code>pages_manage_posts<\/code>, que autoriza criar, editar e apagar publica\u00e7\u00f5es em nome da P\u00e1gina;<\/li>\n<li><code>pages_read_engagement<\/code>, que d\u00e1 leitura do conte\u00fado e das m\u00e9tricas da P\u00e1gina, e sem a qual o pr\u00f3prio pedido de publica\u00e7\u00e3o \u00e9 recusado.<\/li>\n<\/ul>\n<p>A tela de consentimento da Meta separa permiss\u00e3o de ativo. A pessoa pode conceder as tr\u00eas permiss\u00f5es e, na etapa seguinte, marcar s\u00f3 uma das cinco P\u00e1ginas que administra. O resultado \u00e9 uma conex\u00e3o que parece completa em qualquer verifica\u00e7\u00e3o superficial e falha na hora de publicar em uma P\u00e1gina espec\u00edfica.<\/p>\n<p>Para confirmar sem adivinhar, inspecione o token no endpoint <code>\/debug_token?input_token={token}<\/code>. Ele devolve <code>is_valid<\/code>, <code>scopes<\/code> com a lista de permiss\u00f5es concedidas, <code>granular_scopes<\/code> com o recorte por ativo e <code>profile_id<\/code>, que no caso de um token de P\u00e1gina indica a qual P\u00e1gina aquele token pertence. \u00c9 em <code>granular_scopes<\/code> que a P\u00e1gina esquecida aparece como ausente, enquanto <code>scopes<\/code> segue mostrando as tr\u00eas permiss\u00f5es concedidas.<\/p>\n<p>Quando o diagn\u00f3stico apontar ativo faltando, refa\u00e7a o login e, na tela em que a Meta pergunta a quais P\u00e1ginas o app ter\u00e1 acesso, marque a P\u00e1gina certa. Repetir a autoriza\u00e7\u00e3o n\u00e3o duplica nada: a concess\u00e3o anterior \u00e9 substitu\u00edda pela nova.<\/p>\n<h2>Publique o primeiro post e confirme que ele existe<\/h2>\n<p>O endpoint \u00e9 <code>POST \/{page-id}\/feed<\/code>, e a documenta\u00e7\u00e3o exige que pelo menos um entre <code>message<\/code> e <code>link<\/code> seja enviado. Para quem est\u00e1 distribuindo artigo, os dois fazem sentido juntos: <code>message<\/code> carrega o texto que vai aparecer no feed e <code>link<\/code> aponta para a URL do artigo, que \u00e9 o que faz o Facebook montar o cart\u00e3o de pr\u00e9-visualiza\u00e7\u00e3o com t\u00edtulo e imagem.<\/p>\n<p>No primeiro disparo, mande <code>published<\/code> como <code>false<\/code>. O endpoint aceita esse par\u00e2metro, que por padr\u00e3o vem verdadeiro, e cria a publica\u00e7\u00e3o sem coloc\u00e1-la no feed. Voc\u00ea confere o texto, o link e o cart\u00e3o dentro das ferramentas de publica\u00e7\u00e3o da P\u00e1gina, e s\u00f3 depois repete a chamada valendo. A alternativa \u00e9 testar ao vivo e deixar tr\u00eas posts de teste vis\u00edveis para quem seguiu a P\u00e1gina nesta semana.<\/p>\n<p>Fixe a vers\u00e3o da API na URL da chamada em vez de usar o caminho sem vers\u00e3o. A v26.0 foi lan\u00e7ada em 29 de julho de 2026 e \u00e9 a mais recente listada no changelog; a v25.0, de 18 de fevereiro de 2026, tem validade anunciada at\u00e9 29 de julho de 2028. Esses dois anos de sobrevida s\u00e3o o seu intervalo para migrar com calma, e voc\u00ea s\u00f3 tem esse intervalo se souber em qual vers\u00e3o o seu c\u00f3digo est\u00e1.<\/p>\n<p>Manter isso funcionando \u00e0 m\u00e3o significa guardar token no banco do site, tratar renova\u00e7\u00e3o e acompanhar changelog. Quem prefere n\u00e3o manter usa uma conex\u00e3o pronta: o Post Ping abre o login oficial da Meta, descobre a P\u00e1gina e a conta sozinho, sem pedir que voc\u00ea gere token ou copie id em lugar nenhum, e renova o acesso por conta pr\u00f3pria. O detalhe de cada recurso est\u00e1 em <a href=\"https:\/\/postping.com.br\/recursos\">recursos do plugin<\/a>, e a esteira inteira, do artigo publicado ao post no ar, est\u00e1 em <a href=\"https:\/\/postping.com.br\/blog\/wordpress-instagram-facebook-automatico\/\">publicar do WordPress no Instagram e no Facebook automaticamente<\/a>.<\/p>\n<p>Feita a primeira publica\u00e7\u00e3o, tr\u00eas leituras dizem se a integra\u00e7\u00e3o est\u00e1 de p\u00e9.<\/p>\n<p>A primeira \u00e9 a resposta da pr\u00f3pria chamada. Uma publica\u00e7\u00e3o aceita devolve um objeto com o campo <code>id<\/code>. Guarde esse id no banco junto com o artigo: \u00e9 ele que permite, meses depois, saber se aquele post saiu e qual \u00e9. Sem esse registro, a \u00fanica forma de auditar \u00e9 abrir a P\u00e1gina e rolar o feed.<\/p>\n<p>A segunda \u00e9 o token, um dia depois de publicar. Chame <code>\/debug_token<\/code> de novo e leia <code>is_valid<\/code>. Uma conex\u00e3o que publicou hoje e amanh\u00e3 responde com token inv\u00e1lido n\u00e3o quebrou por acaso: algu\u00e9m mexeu em senha, em papel na P\u00e1gina ou nas permiss\u00f5es do app.<\/p>\n<p>A terceira mora no cabe\u00e7alho da resposta, e quase ningu\u00e9m olha. Pedidos da Pages API feitos com token de P\u00e1gina trazem o cabe\u00e7alho <code>X-Business-Use-Case-Usage<\/code>, com <code>call_count<\/code> em porcentagem do permitido e <code>estimated_time_to_regain_access<\/code> em minutos, para o caso de voc\u00ea j\u00e1 estar bloqueado. O teto sai da f\u00f3rmula que a Meta publica: 4800 chamadas em 24 horas multiplicadas pelo n\u00famero de usu\u00e1rios engajados da P\u00e1gina. P\u00e1gina nova, com pouco engajamento, tem teto baixo, e \u00e9 por isso que a primeira semana de uma automa\u00e7\u00e3o \u00e9 a mais arriscada. Se <code>call_count<\/code> j\u00e1 sobe acima de 20% publicando um artigo por dia, tem chamada sobrando em algum la\u00e7o do seu c\u00f3digo. Estourado o limite, a Graph API responde <code>80001<\/code> quando o pedido saiu com token de P\u00e1gina, e <code>32<\/code> quando saiu com token de app ou de usu\u00e1rio. Os dois c\u00f3digos significam bloqueio por volume, mas apontam para contadores diferentes, e tratar um pelo outro leva voc\u00ea a otimizar o la\u00e7o errado.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Publicar no Facebook automaticamente sem criar app na Meta \u00e9 rota oficial: as tr\u00eas permiss\u00f5es exigidas, o papel na P\u00e1gina e como testar sem sujar o feed.<\/p>\n","protected":false},"author":1,"featured_media":173,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-174","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-publicacao-automatica"],"_links":{"self":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/posts\/174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/comments?post=174"}],"version-history":[{"count":0,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/posts\/174\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/media\/173"}],"wp:attachment":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/media?parent=174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/categories?post=174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/tags?post=174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}