Este artigo mostra como desenvolver um script para exibir o status do Messenger, do Skype ou GTalk de modo personalizado, sem precisar copiar e colar os códigos (e as figuras toscas) exibidas por estes serviços e comunicação. Ao final haverão sugestões de uso e de melhorias nas funcionalidades.
/* ******Passo 1 - fazer download da figura******
Nota: a variável ambiente allow_url_fopen do PHP deve estar na posição ON para que permita fazer o download das figuras.
*/ // adaptado de www.php.net/fopen
// coloque na variável $file_source o URL correspondente ao seu status msn messenger live
$file_source = "http://messenger.services.live.com/users/b9f650460adaf84d@apps.messenger.live.com/presenceimage?mkt=pt-br";
// coloque na variável $file_target o caminho absoluto do arquivo GIF a ser gerado // Nota: utilize o /tmp da sua hospedagem porque não vai gastar espaço na sua hospedagem, hehehehe!
$file_target = "vol/msn_status.gif";
$rh = fopen($file_source, 'rb');
$wh = fopen($file_target, 'wb');
if ($rh===false || $wh===false) { //echo "error reading or opening file"; //return true;
}
while (!feof($rh)) {
if (fwrite($wh, fread($rh, 1024)) === FALSE) { //echo 'Download error: Cannot write to file ('.$file_target.')'; //return true;
}
}
fclose($rh);
fclose($wh); // No error //return false; //echo "imagem salva e tudo ok!";
/* Passo 2 - Abre a imagem recém-salva e lê o pixel especificado */ // adaptado de www.php.net/imagecolorat
$im = @imagecreatefromgif ($file_target); /* Attempt to open */
if (!$im) { /* See if it failed */
echo "erro no na captura da imagem";
}
// aqui está a chave do nosso script: o pixel x=5 e y=10 é verde com $rgb == 45 para online. Se estiver offline este pixel fica cinza
$rgb = imagecolorat($im, 5, 10);
/*
Pronto, agora o script PHP retorna se você está online ou offline automaticamente. Assim você pode escrever ou não no site o seu status.
Sugestão 1: Para sites com muitos acessos, utilize um "cache" de modo que a consulta ao servidor do MSN só ocorra a cada 30 segundos após a criação do arquivo temporário.
Sugestão 2: Faça deste código um método de um objeto PHP.
Sugestão 3: Se o admin do seu serviço de hospedagem não deixar o Apache escrever na pasta /tmp do servidor, então crie uma pasta na sua conta de hospedagem com permissão de escrita.
*/
?>
[1] Comentário enviado por marciolara em 23/03/2011 - 09:56h
Tenho um site e gostaria de inserir os códigos HTML do msn, skype e o talk. O sistema do site é Joomla , e o suporte não está conseguindo. Tem alguma coisa a ver com o sistema Joomla? Uso em meu blog e funciona normalmente. Obrigado.
Márcio O. Lara
Águas Vermelhas-MG
[3] Comentário enviado por diegokorvo em 17/10/2012 - 15:16h
corrigi um problema que estava tendo com muitos clientes utilizando este código e fazendo uma pequena modificação.
O status do Msn poderia ficar ausente, ou ocupado também. Então mudei a configuração para a cor de um pixel da imagem Offline
[4] Comentário enviado por guiguix em 17/10/2012 - 16:14h
Obrigado douglasjam e diegokorvo, vocês melhoraram o script. Lembro aos visitantes e amantes do PHP que:
1) O GTALK desativou este serviço. Por isso, se você deseja um help desk simplificado, utilize o phpFreeChat (http://www.phpfreechat.net), um projeto gratuito e muito fácil de integrar;
2) Em PHPCLASSES (http://www.phpclasses.org) tem classes prontinhas para visualizar o status do Skype e MSN.