PHP-GD retorna status do MSN Messenger , Skype e GTalk

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.

[ Hits: 30.846 ]

Por: Guilherme em 23/09/2009


Por quê e como funciona?



Por quê criar este script?

Os serviços de comunicação MSN Messenger Live, Skype e GTalk têm uma funcionalidade bastante interessante para desenvolvedores de páginas: exibir o status do Messenger, do Skype e do GTalk direto da sua página. Assim o internauta terá acesso "ao vivo" ao MSN, Skype ou GTalk no seu site.

Infelizmente eles oferecem um "pedaço" de URL pronto, sem deixar opção para o designer colocar uma figura ou um texto que lhe convir. Portanto a proposta deste artigo é: desenvolver um script PHP de modo que retorne o status de cada comunicador: Messenger, Skype e GTalk.

Se você não sabe do que estou falando, então faça isso agora:

Habilitar o acesso do MSN, Skype, e GTalk direto do seu site?

MSN Live Messenger

Logue-se na conta live e acesse a seguinte URL:
Na aba "Página Inicial" ative a opção "Permitir que qualquer pessoa na Web veja a minha presença e me envie mensagens" e clique em Salvar.

Na opção "Criar HTML", selecione o botão "Ícone de status". Agora copie a URL do botão (no código src="[sua figura de status do seu Messenger]"), cole no seu navegador e perceba que aparece um GIF do seu status atual. É este código que usaremos no script do PHP MSN status.

Skype

Acesse a URL:
No campo "Digite seu Nome Skype", coloque o seu login do Skype.

Na opção "Botões do Skype com status", selecione o botão da esquerda.

No campo "Copie e cole este código", veja o código HTML src=[seu status]. Cole no seu navegador e perceba que aparece uma figura PNG do seu status atual. Esta será a URL da figura PNG correspondente ao seu status que usaremos no script PHP Skype status.

GTalk (Google Talk)

Logue na conta do Google e acesse a URL:
Selecione a opção "Edit" e deixe no estilo "Padrão". Então copie a URL do <iframe src="[SUA URL]"></iframe>. Depois substituiremos o "[SUA URL]" no script PHP GTalk status.

se já estiver com estes serviços habilitados na sua conta MSN, Skype e GTalk, podemos continuar.

Como funciona o script?

O PHP faz o download das figuras de status do MSN ou do Skype. Ao salvar o PHP por meio da biblioteca GD, lê um determinado pixel da figura e, se estiver na cor correspondente ao status, ele retorna VERDADEIRO (TRUE), caso contrário, retorna FALSO (FALSE).

Aqui estão os passos para o MSN e Skype, o script PHP funciona da seguinte maneira:

Passo 1 - O PHP faz o download da figura gerada automaticamente:

Exemplo de figura do MSN para o meu login: http://messenger.services.live.com/users/b9f650460adaf84d@apps.messenger.live.com/presenceimage?mkt=pt-br

Exemplo de figura do Skype para o meu login: http://mystatus.skype.com/balloon/guiguigoiano

Passo 2 - A GD, por meio da função "imagecolorat", lê o pixel da figura. Aí colocamos um if qualquer para ler a cor do pixel especificado e retornamos verdadeiro para online e falso para offline.

No GTalk o script PHP é bem simples e funciona da seguinte maneira:

1. O PHP recebe a resposta da URL de status do GTalk através da função file.

2. Identificamos a array que possui a string "Available" (ou "Livre" para servidores com lang=pt-br). Em caso afirmativo, retorna VERDADEIRO (TRUE) ou FALSO (FALSO) se não houver a string "Available".

Exemplos:
Agora vamos ver os scripts prontos.

    Próxima página

Páginas do artigo
   1. Por quê e como funciona?
   2. PHP script - MSN Messenger Live status
   3. PHP script - Skype status
   4. PHP script - GTalk status
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Chat em PHP - Cheio de recursos e fácil de instalar e usar

Plugin Moip Assinaturas para CakePHP - Conheça e aprenda a usar

Enganando o proxy Squid (download de arquivos)

Ambiente LAMP no Debian

Conheça o PHP-Fusion

  
Comentários
[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

[2] Comentário enviado por douglasjam em 15/02/2012 - 09:11h

Quem quiser um script mais simplificado, segue abaixo:

<?php
if (imagecolorat(imagecreatefromgif("http://messenger.services.live.com/users/<SUA ID>@apps.messenger.live.com/presenceimage?mkt=pt-BR"), 5, 10) == 45)
echo 'Online';
else
echo 'Offline';
?>

[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

<?
$idMsn = <IDdoMSN>;
if (imagecolorat(@imagecreatefromgif ("http://messenger.services.live.com/users/".$idMsn."@apps.messenger.live.com/presenceimage?mkt=pt-br"), 5, 2) != 46) {
echo "Online";
}
else
{
echo "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.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts