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.