- Criando um sistema de Microblogging para o CMI e integrando ele com o …
- O que é microblogging?
- Por que ter um microblogging para o CMI?
- Funcionalidades legais de um microblogging
- Algumas informacões sobre o Status.net
-
Instalando o Status.net para testes
- Pré-requesitos
-
Instalacão
- 1. Abra o arquivo tar.gz da versão que você baixou pela internet, com o …
- 2. Mude o sub-diretório 'statusnet-0.8.2' para o local que você gostaria …
- 3. Dê permissão de escrita para o servidor web ao seu diretório:
- 4. Aproveitei esse momento para dar permissão de escrita ao seu servidor …
- 5. Crie um banco de dados:
- 6. Crie um usuário no Mysql para acessar o banco de dados.
- 7. Configure o vhost do Apache:
- 8. No navegador abra o script de instalacão:
- 9. Você já deve ser capaz de navegar pelo diretório principal do seu …
- Configurando o Micro para receber msgs via Jabber
- Instalando um servidor XMPP (Jabber)
- Obersacões
Criando um sistema de Microblogging para o CMI e integrando ele com o Drupal
O que é microblogging?
Wikipedia:
Micro-blogging é uma forma de publicação de blog que permite aos usuários que façam atualizações breves de texto (geralmente com menos de 200 caracteres) e publicá-las para que sejam vistas publicamente ou apenas por um grupo restrito escolhido pelo usuário. Estes textos podem ser enviados por uma diversidade de meios tais como SMS, mensageiro instantâneo, e-mail, mp3 ou pela web.
Por que ter um microblogging para o CMI?
Alguns sites da rede global estão utilizando o twitter para ter atualizacões de min-a-min de eventos. Entretanto, não é seguro usar um servico comercial o qual o CMI não possui qualquer controle - já que o servico esta instalado em um servidor comercial. Uma mostra disso foi o resultado do uso do twitter durante as manifestacões contra o G20 em Pittsburgh pelo CMI Pittsburgh. Muitos ativistas usaram o twitter para coordernar os protestos e também enviar atualizacões para a web sobre o que estava acontecendo nas ruas, depois dos protestos o FBI conseguiu identificar os ips dos ativistas (provavelmente com colaboracão do twitter - mas a empresa não quis comentar sobre o assunto - nem negando ou afirmando que havia colaborado com a policia). Uma vez com os ips ele conseguiu rastrear o local de onde os usuários estavam publicando as mensagens, predendo os ativistas e apreendendo seus pertences: computadores, livros, cartaz, zines etc.
Desta forma, decidimos instalar o nosso próprio microblogging utilizando um software livre chamado status.net. Esse é o mesmo software utilizado pelo site identi.ca.
Funcionalidades legais de um microblogging
Podemos fazer uma documentacão específica para os usuários do microblogging. Mas até lá, seria legal listar algumas funcionalidades legais que o servico oferece:
- Grupos - usuários podem criar ou se inscrever em grupos. Desta forma fica mais fácil categorizar as mensagens. Por exemplo, um grupo chamado 'São Paulo' vai receber mensagens relacionadas com a cidade São Paulo. Além disso, todas as pessoas inscritas nesse grupo recebem as mensagens enviadas para ele.
- Tags - outra forma legal de categorizar as mensagens.
- Envio de msgs via jabber - O uso do jabber para enviar mensagens é muito legal porque desta forma, as pessoas que tiverem celulares que rodam clientes jabber poderão atualizar o microblogging utilizando o celular - essa foi a melhor forma até agora para o CMI receber publicacões via celular.
- Feed RSS - grupos, usuarios, tags possuem feeds rss próprios.Além disso há um feed rss de todas as mensagens enviadas para o microblogging - Isso torna super fácil integrar o microblogging com o drupal.
Algumas informacões sobre o Status.net
- Site: http://status.net
- Canal de IRC: #status.net no irc.freenode.net - O pessoal que fica no IRC é gente boa e responde numa boa suas dúvidas.
- README: O readme do status.net é muito bom e é a melhor documentacão sobre como instalar e configurar o software.
- Versões: A versão utilizada para testes foi a estavel 0.8.2. A próxima versão, 0.9.x, será lancada em Janeiro. Convem atualizar para essa versão assim que for lancada porque a traducão para pt_BR está mais completa.
Instalando o Status.net para testes
Pré-requesitos
- PHP 5.2.3+.
- MySQL 5.x.
- Apache 2.2.x com o mod_rewrite instalado e habilitado.
A instalacão PHP deve incluir as seguintes extensões:
- Curl. This is for fetching files by HTTP.
- XMLWriter. This is for formatting XML and HTML output.
- MySQL. For accessing the database.
- GD. For scaling down avatar images.
- mbstring. For handling Unicode (UTF-8) encoded strings.
- gettext. For multiple languages. Default on many PHP installs.
Todos os pré-requisitos podem ser instalados com apt-get.
Instalacão
1. Abra o arquivo tar.gz da versão que você baixou pela internet, com o seguinte comando:
tar zxf statusnet-0.8.2.tar.gz
Ele vai criar um sub-diretório chamando 'statusnet-0.8.2'.
2. Mude o sub-diretório 'statusnet-0.8.2' para o local que você gostaria de instalar o software.
No caso do micro.midiaindependente.org, eu coloquei o statusnet no vserver indydevel (servidor de desenvolvimento do CMI). Usando os comandos:
mv statusnet-0.8.2 /var/www/micro-cmi
Nota: Mudei o nome do diretório de statusnet-0.8.2 para micro-cmi
3. Dê permissão de escrita para o servidor web ao seu diretório:
chmod a+w /var/www/micro-cmi
Ou você pode fazer:
chgrp www-data /var/www/micro-cmi/ chmod g+w /var/www/micro-cmi/
Se o Apache estiver usando outro usuário que não seja o "www-data", tente o mesmo comando com o usuário que ele estiver usando.
4. Aproveitei esse momento para dar permissão de escrita ao seu servidor web aos sub-diretórios: avatar, background e file.
Se o usuario do Apache nao for www-data mude para o usuário que você estiver usando:
chgrp www-data /var/www/micro-cmi/avatar chmod g+w /var/www/micro-cmi/avatar chgrp www-data /var/www/micro-cmi/background chmod g+w /var/www/micro-cmi/background chgrp www-data /var/www/micro-cmi/file chmod g+w /var/www/micro-cmi/file
5. Crie um banco de dados:
Algo assim:
mysqladmin -u root -p create nomedobanco
Mude nomedobanco pelo nome do banco de dados que você quer criar. Nesse comando você vai criar usando o usuário root do mysql, para isso você precisa saber a senha dele.
6. Crie um usuário no Mysql para acessar o banco de dados.
Usando um cliente mysql no terminal faca:
GRANT ALL on nomedobanco.* TO 'usuario'@'localhost' IDENTIFIED BY 'senha';
- Para nomedobanco: coloque o mesmo nome do banco de dados que você criou no comando acima;
- Para usuario: coloque o nome do usuario que o statusnet vai usar para acessar esse banco;
- Para senha: coloque uma senha (difícil de preferencia) para esse usuário conectar no mysql;
É sempre bom testar conectar no mysql com o novo usuário antes de proceder com a instalacão.
7. Configure o vhost do Apache:
O status.net no CMI vai usar o seguinte domínio:
http://micro.midiaindependente.org
Primeiro é preciso criar o proxy para passar o domínio do servidor base para o vserver. Depois, no indydevel, aponte o domínio para o diretório onde será instalado o status.net /var/www/micro-cmi
URL Limpas:
Você pode usar o módulo re-write para ter URL limpas (ex: micro.midiaindependente.org/group/saopaulo ou invés de algo como micro.midiaindependente.org/index.php?p=micro-cmi/fred).
Existem duas formas de se fazer isso, uma seria no próprio arquivo de vhost do Apache e a outra seria usando o arquivo .htaccess que vem com um exemplo de configuracão do módulo re-write.
Vou explicar ambos.
Usando o .htaccess:
Nota: para uma melhor performance é preferível usar o outro método - configuracao do módulo re-write dentro do arquivo vhost do Apache. Mas na instaĺacão de testes que foi feita nós estamos usando o arquivo .htaccess.
Essa configuracão fica no arquivo .htaccess no diretório raíz do status.net (nesse caso seria o /var/www/micro-cmi).
Dentro do diretório raíz do status.net faca:
1. Copie o arquivo htaccess.sample para .htaccess
2. Mude RewriteBase no novo arquivo .htaccess para o caminho usado pela URL da sua instalacão do StatusNet no seu servidor. Nesse caso seria: "/"
3. Adicione ou descomente ou mude a linha do seu arquivo config.php que diz:
$config['site']['fancy'] = true;
E você poderá navegar utilizando URL limpas, como:
http://micro.midiaindependente.org/main/register
Como você mudou a configuracão HTTP do seu servidor, você vai precisar reinciar o Apache para fazer funcionar as URl limpas.
Se não funcionar, cheque novamente se o AllowOverride na configuracão de vhost no Apache para o domínio, possui a opcão All.
Ou cheque se o módulo rewrite (mod_rewrite) está instalado e habilitado.
8. No navegador abra o script de instalacão:
http://micro.midiaindependente.org/install.php
Coloque as informacões para conectar no banco de dados e o nome do seu site.
O programa de instalacão vai configurar o seu site e instalar um banco de dados praticamente vazio.
O script de instalacão também mostra avisos de erros para você corrigir caso tenha alguma coisa faltando ou alguma permissão errada.
9. Você já deve ser capaz de navegar pelo diretório principal do seu microblog.
E ver o "Public Timeline", que estará vazio. Já pode registrar um novo usuário, publicar mensagens, editar o seu perfil, etc.
Configurando o Micro para receber msgs via Jabber
O Jabber usa o protoclo XMPP (eXtended Message and Presence Protocol, <http://xmpp.org/>), que é um protocolo para mensagens-instantâneas, ou seja chats do tipo do Jabber e Gtalk IM.
Nessa parte da documentacão vamos mostrar como integrar o Micro com XMPP. E assim, o usuário poderá publicar no Micro um post (de até 140 caracteres) usando o seu cliente Jabber. E como hoje em dia alguns telefones celulares estão vindo com programas de mensagens-instantêneas (Jabber), quem tiver esses tipos de celulares poderá publicar no Micro usando o celular, basta enviar uma mensagem para o usuário (bot) do Micro e ela aparecerá automáticamente no site do Micro e também no site do CMI (dentro do bloco que exibe as mensagens publicadas no Micro, o bloco assina um Feed RSS do Micro).
1. Integrando o Micro com XMPP (Jabber)
Além da configuracão abaixo, é necessário ter um usuário jabber para o Statusnet usar para comunicar-se - no exemplo abaixo esta o usuario cmi-bot@…. Mas o ideal seria instalar um servidor Jabber localmente para criar essa conta. É bastante fácil a instalacão do servidor Jabber e deveríamos instalar um na hora de passar o site novo para producão - tem um guia básico de como instalar um servidor Jabber no final dessa documentacão. .
Os passos básicos são:
# Configurar um servidor Jabber/XMPP - no momento estamos usando o servidor jabber.org para testes # Registrar uma conta para comunicacão do XMPP (criar uma conta no servidor jabber) - a conta que estamos usando para testes é cmi-bot@… # Configurar o !Statusnet. # Configurar e iniciar os daemons do Statusnet.
!Statusnet config
Copie a configuracão abaixo e cole no arqui config do !Statusnet. Modifique o que for necessário para configurar o cliente jabber que você estará usando.
# xmpp $config['xmpp']['enabled'] = true; $config['xmpp']['server'] = 'jabber.org'; # XMPP server name $config['xmpp']['host'] = NULL; # Only set if different from server $config['xmpp']['port'] = 5222; $config['xmpp']['user'] = 'cmi-bot'; # set to what ever user name is registered on XMPP server $config['xmpp']['encryption'] = false; $config['xmpp']['resource'] = 'uniquename'; $config['xmpp']['password'] = 'SENHA'; $config['xmpp']['debug'] = false; $config['queue']['enabled'] = true;
Daemons do !Statusnet
No diretório de scripts do Statusnet, tem o arquivo scripts/getvaliddaemons.php - comente os deamons que você não vai usar, como por exemplo:
#echo "ombqueuehandler.php "; #echo "twitterqueuehandler.php "; #echo "facebookqueuehandler.php "; #echo "pingqueuehandler.php "; #echo "smsqueuehandler.php ";
Execute o script startdaemons.sh para iniciar os daemons. Ou se preferir, coloco o script no cron para ser executado de tempo em tempo - para garantir que o servico não caia.
Instalando um servidor XMPP (Jabber)
StatusNet trabalha com qualquer servidor XMPP (jabber, Gtalk etc). Abaixo você encontrará um guia básico de como instalar alguns servidores XMPP:
EJabberd
Instale o ejabberd, por exemplo no Debian Linux faca esse comando:
sudo apt-get install ejabberd
Edite o config:
sudo vim /etc/ejabberd/ejabberd.cfg
Adicione a informacão para host - você vai precisar saber o localhost, hostname e fqdn para o seu servidor:
{hosts, ["localhost", "seagull", "seagull.local.net"]}.
Adicione essa linha para não ter problemas de timeouts para usuários:
{registration_timeout, infinity}.
Prosody
Instale o Prosody, baixando-o e seguindo as instrucões de instalacão.
Edite o config:
sudo vim /etc/prosody/prosody.cfg.lua
Adicione o hostname:
Host "seagull.local.net"
Finalmente, crie uma conta para o bot do StatusNet:
sudo prosodyctl adduser bot@seagull.local.net
Obersacões
Atualizacão do StatusNet para a versão 0.9.x
Precisamos atualizar assim que a versão for lancada. A atualizacão resolverá muitos dos problemas de traducão para o pt_br da versão atual.
Falta otimizar
Existem algumas coisas que você pode fazer para otimizar o funcionamento do StatusNet (caso o número de usuários seja muito grande). Falta configurar, testar e documentar essa parte.
