Facebook, publicação no mural de Grupo com sdk para PHP

Introdução

Este artigo esta atualizado e testado de acordo com a última versão de Graph API e baseado no SDK v5 do PHP

Neste tutorial vamos aprender como realizar publicações em grupos do facebook através de um Aplicativo. Vamos utilizar a versão 5 do SDK para PHP do facebook. Caso queira aprender como criar aplicativos e configurar o sdk, aconselho antes, a ler meu outro artigo:
Criando Aplicativos Facebook SDK v5 em PHP

Permissões

Ao interagir com o usuário, será necessário que o aplicativo do facebook solicite a seguinte permissão para poder publicar no mural de qualquer grupo no qual o usuário participa:

publish_actions
  • publish_actions – Permissão para poder realizar publicações em nome do usuário.

Para saber como solicitar permissões pelo SDK PHP verifique meu outro artigo:
Facebook App: Requisitando permissões pela API do PHP

Obtendo lista dos grupos que o usuário participa

Na primeira versão da Graph API era possível obter a lista de grupos que o usuário participava solicitando a permissão user_groups e consultando o endpoint /me/groups. Porém nas versões mais atuais o facebook desativou a permissão user_groups. Portanto, caso queira publicar em algum dos grupos que o usuário participa, é necessário saber o ID do grupo de antemão, o que pode dificultar um pouco o processo. Não sei exatamente o motivo do facebook ter desabilitado essa permissão, mas parece ser por motivos de diminuir spam através dos aplicativos.

Para obter o ID do grupo, basta acessar o endereço do grupo através do navegador e capturar o ID que esta na barra de endereço. Ex: (De alguma forma você deverá saber que o usuário é membro do grupo)

Captura de Tela 2015-08-08 às 15.28.34

Se você estiver trabalhando com grupos no qual o usuário é admin e não somente um membro, você pode achar interessante a permissão user_managed_groups (veja abaixo).

Realizando a publicação

A publicação no mural do grupo é muito semelhante à publicação no mural do usuário. Basta informar o ID do grupo na publicação. Veja o exemplo abaixo:

$feedData = array(
    "message" => "Lista de artigos relacionados ao Facebook API no meu Blog!",
    "name" => "Pasqua Tecnologia - Artigos API Facebook!",
    "link" => "http://www.douglaspasqua.com/category/facebook/", // link da publiccao
    "picture" => "http://www.douglaspasqua.com/wp-content/uploads/2013/04/facebook-developer-150x150.png",
    "caption" => "API Facebook",
);

// especifica o ID do GRUPO
$response = $fb->post("/934970206544139/feed", $feedData, $accessToken);

$graphNode = $response->getGraphNode();
echo 'ID da Postagem: ' . $graphNode['id'];

user_managed_groups

Existe uma outra permissão na graph api relacionada com grupos. É a permissão user_managed_groups, que permite gerenciar os grupos no qual o usuário é admin. Caso o usuário aceitar essa permissão é possível obter a lista de grupos no qual ele é admin, obtendo inclusive o ID do grupo. Ex:

$response = $fb->get('/me/groups', $accessToken);
$data = $response->getDecodedBody();

echo "<pre>";
print_r($data);
echo "</prev>";

Com essa permissão é possível também publicar fotos no grupo no qual o usuário é admin:

$data = [
    'caption' => 'Bela Paisagem.',
    'image' => $fb->fileToUpload(__DIR__ . '/paisagem-1.jpg'),
];

$response = $fb->post("/934970206544139/photos", $data, $accessToken);

$graphNode = $response->getGraphNode();
echo "ID da Foto: " . $graphNode['id'];

Vídeos:

$data = [
    'title' => 'Video Qualquer.',
    'description' => 'Ótimo Video - qualquer coisa',
    'source' => $fb->videoToUpload(__DIR__ . '/foo.mp4'),
];

$response = $fb->post("/934970206544139/videos", $data, $accessToken);

$graphNode = $response->getGraphNode();
echo "ID do Video: " . $graphNode['id'];

Mais operações, consultar documentação oficial:
https://developers.facebook.com/docs/graph-api/reference/v2.4/group

Conclusão

Apesar das restrições da Graph API ainda é possível manipular grupos através de aplicativo com as dicas citadas neste artigo. Qualquer dúvida ou sugestão fique a vontade para comentar.

Please follow and like us:

Comments

  1. By Erick

    • mm By Douglas V. Pasqua

  2. By MaxMax

    • mm By Douglas V. Pasqua

      • By MaxMax

        • mm By Douglas V. Pasqua

          • By MaxMax

          • mm By Douglas V. Pasqua

          • By MaxMax

          • mm By Douglas V. Pasqua

          • By MaxMax

  3. By luciano

    • mm By Douglas V. Pasqua

      • By luciano

    • mm By Douglas V. Pasqua

  4. By leonardo sutello

    • mm By Douglas V. Pasqua

        • mm By Douglas V. Pasqua

  5. By Cleiton Soares

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

  6. By Aluizio

    • mm By Douglas V. Pasqua

  7. By Rud

    • mm By Douglas V. Pasqua

  8. By Óscar

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: