FB Graphapi: Postagem na parede da página do FB de outro site
-
25-09-2019 - |
Pergunta
Estou criando um CMS para um site e quero adicionar funcionalidade para postar algo (por exemplo: notícias) à página FB desse site [não ao perfil de usuário].
Eu li a documentação do FB e consegui descobrir que preciso ter um aplicativo FB, que deve ter acesso a essa página. Em seguida, poderei autenticar no meu site como aplicativo e postar o link na página.
Eu criei a página de amostra e um vazio Aplicação (sem código de trabalho). Então eu adicionado Na página [na página de perfil do aplicativo, há um botão "Adicionar à minha página"]. O aplicativo nunca solicitou nenhuma permissões e, de fato, não sei como posso "forçar" meu aplicativo a solicitar permissões da página ...
Agora, do meu servidor, estou autenticando como aplicativo:
$postArr = Array(
'grant_type'=>'client_credentials',
'scope'=>'publish_stream',
'client_id'=>$appId,
'client_secret'=>$appSecret
);
$access_token = CURL_post('https://graph.facebook.com/oauth/access_token',$postArr,true);
Eu recebo um token de acesso e tento postar na parede da página:
$postArr = Array(
'access_token'=>$access,
'message'=>"Message!",
'link'=>'http://egern.net/',
'name'=>"TITLE",
'caption'=>"TITLE2!");
$r = CURL_post("https://graph.facebook.com/MYPAGEID/feed",$postArr,true);
Recebo o seguinte erro: (#200) O usuário não autorizou o aplicativo para executar esta ação
Agora não consigo entender: como a página deve autorizar o aplicativo?
Obrigado.
Solução
Para poder postar na sua página usando a API do gráfico, há algumas etapas para fazer isso:
- O administrador da página precisa instalar seu aplicativo com permissão
manage_pages
, referência. Epublish_stream
para a etapa 3 - Agora consultando o método de contas
->api('/me/accounts?access_token=XXX')
Com o access_token que você acabou de obter, recuperará todas - Use a página access_token para publicar suas "notícias" para sua página
->api('/page_id/feed', 'post', $postArr)
Quase as mesmas instruções estão disponíveis aqui.