Configurando um site MediaWiki para utilizar o Facebook Comments

Você é um usuário do sistema Open Source mediaWiki? Algum dia já pensou em adicionar a plataforma de comentários do Facebook em seus artigos? Se a resposta é sim, você provavelmente já se deparou com alguns problemas típicos da instalação deste plugin no mediaWiki. O objetivo deste artigo é fornecer um passo-a-passo para que você configure esta incrível ferramenta sem perder tempo!

A instalação do Facebook Comments deve ser feita em 4 etapas:

  • Instalação do Código do Plugin fornecido pelo Facebook;
  • Obtenção do Facebook App ID;
  • Obtenção do ID de usuário do Facebook;
  • Instalação dos META TAGS, que lhe permitirão administrar os comentários, inclusive adicionando moderação.

Passo 01 – Instalação do Código do Plugin fornecido pelo Facebook

Visite o site http://developers.facebook.com/docs/reference/plugins/comments/, configure o plugin de acordo com as opções desejadas e clique sobre o botão “Get Code”. Estes dados deverão ser colados no Skin utilizado por sua instalação do mediaWiki. Se você não sabe qual o skin está utilizando, visite o post “Como descobrir qual skin a instalação do mediaWiki está utilizando?“. Edite o arquivo nomedoskin.php (no meu caso vector.php) que se encontra na pasta /skins. localize dentro do arquivo o seguinte código:

<?php $this->html( 'bodytext' ); ?>

Abaixo desta linha, adicione o seguinte código (Este é o mesmo código fornecido pelo facebook, com algumas modificações):

  <script type="text/javascript">// <![CDATA[
  (function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/pt_BR/all.js#xfbml=1&appId=247261365335953";
    fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
  // ]]>
  </script>
  <h2>
  <span class="mw-headline" id="Comentários">Comentários</span>
  </h2>
  <div class="fb-comments" data-href="<?php echo $lstr_URL; ?>" data-num-posts="4" data-width="600"></div>

Observe que a variável adicionada $lstr_URL contém o endereço da URL que usuário está utilizando. Este código foi adicionado para que cada página possa ter o seu próprio botão Like. Para saber como obter o endereço da URL que o usuário está abrindo visite o post “Como descobrir a URL do script que está sendo executado, utilizando PHP?

Pronto!

Passo 02 – Obtenção do Facebook APP ID

Para obter o seu APP ID, cadastre-se em https://developers.facebook.com/apps

Passo 03 – Obtenção do ID de usuário do Facebook;

Você pode descobrir seu ID, visitando o post “Como descobrir o ID do meu usuário do Facebook?

Passo 04 – Instalação dos Meta Tags

Esta é a parte mais complicada, pois as extensões do mediaWiki disponíveis adicionam apenas meta tags com o comando NAME e não com o comando PROPERTY exigido pelo Facebook. Assim, tive que customizar uma extensão chamada AddMetas (desenvolvida por Luis diaz), para que ela adiciona as Meta tags aceitas pela API do Facebook. Assim surgiu o código:

<?php

if( !defined( 'MEDIAWIKI' ) ) {
    echo( "This file is an extension to the MediaWiki software and cannot be used standalone.n" );
    die( 1 );
}
 
$wgExtensionCredits['other'][] = array( 
    'name' => 'AddFacebookCommentsMetas', 
    'status' => 'experimental',
    'author' => 'Paulo A. Costa (Based on work of Luiz Dias - AddMetas)',
    'version' => '0.1',
    'url' => 'http://www.pauloacosta.com/blog',
    'description' => 'Add required Facebook comments Meta Properties.',
);
 
$wgHooks['OutputPageBeforeHTML'][] = 'wfAddMetas';
 
function wfAddMetas( &$out, &$text ) {
  global $wgTitle, $wgParser, $wgRequest, $action;
  if(
          $action !== 'edit'
       && $action !== 'history'
       && $action !== 'delete'
       && $action !== 'watch'
       && strpos( $wgParser->mTitle->mPrefixedText, 'Special:' ) === false
       && $wgParser->mTitle->mNamespace !== 8
  )
  {
    $name = $wgTitle->getPrefixedDBKey();
 
    $out->addHeadItem("meta:property:"."fb:admins", Html::element( 'meta', array( 'property' => "fb:admins", 'content' => 'FACEBOOK_USER_ID') ) );	 
    $out->addHeadItem("meta:property:"."fb:app_id", Html::element( 'meta', array( 'property' => "fb:app_id", 'content' => 'FACEBOOK_APP_ID') ) );
	        
  }
  return true;
}
?>

Salve o código acima (sem esquecer de substituir os valores para FACEBOOK_USER_ID, FACEBOOK_APP_ID – Obtidos nos passos anteriores) no arquivo /extensions/addMetaTags/addMetaTags.php, e adicione o código abaixo no /LocalSettings.php

# Extension: addMetaTags
require_once( "$IP/extensions/addMetaTags/addMetaTags.php" );

Salve!

O trabalho foi finalizado, e você já pode visualizar o artigo em seu site mediaWiki contendo uma área de comentários. Além disso, você também poderá moderar os comentários que seus visitantes deixam antes de que os outros visitantes leiam, para isso visite o endereço http://developers.facebook.com/tools/comments

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

3 ideias sobre “Configurando um site MediaWiki para utilizar o Facebook Comments

  1. Emmerson

    Paulo, realizei todas as instruções com a versão 1.18 do MK. Recebi a seguinte mensagem dentro do box:

    “Algo deu errado. Estamos trabalhando para consertar isso o mais rápido possível.”

    Tem ideia do que pode estar ocorrendo?

    Abs e parabéns pelo blog.

    Responder
    1. Paulo Autor do post

      Emmerson, pelo que andei pesquisando, esta mensagem é enviada pelo Facebook para informar que “Se você vê essa mensagem ao tentar entrar, geralmente é porque estamos realizando melhorias no banco de dados no qual a sua conta está armazenada.”

      Aguarde um momento, e verifique novamente; se continuar acusando o mesmo erro, verifique se foi inserido o Facebook App ID e as metatags.

      Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *