Vous êtes ici : accueil  | archives  | Rendre votre statut Skype accessible sur votre site web

Rendre votre statut Skype accessible sur votre site web [589 mots]

Posté le 30 juin 2007 à 15:17 | Vu 1138 fois | 1 commentaire | Tags: ,

Pré requis

si vous êtes le propriétaire de l'identifiant Skype dont vous voulez afficher le statut sur le web, vous devez commencer par l'autoriser: dans les "Préférences" de Skype, onglet "Vie privée", il vous faudra cocher la case "Permettre l'affichage de mon état sur le web".

Skype propose différents types d'images renfermant le statut de la connexion

Imaginons que votre identifiant Skype se nomme...'identifiant'):

Problème : ces images renferment une information (le statut) mais il n'est pas fourni d'alternative textuelle pour ces images....

Il aurait été simple pour Skype de fournir un code PHP qui dynamiquement renvoie une image et son alternative textuelle au format HTML . Mais cela n'est pas le cas.

Malgré tout, Skype fournit aussi le statut aux formats numérique et textuel via un fichier XML.

Récupérer son statut au format texte

L'URL du fichier XML skype renfermant le statut est :

http://mystatus.skype.com/identifiant.xml

Il ne reste qu'à extraire de ce fichier les informations utiles (on étudiera le cas d'un site en PHP et l'on réalisera le parsing à l'aide d'expressions régulières) .

Le fichier XML renferme la valeur du statut au format texte, et, ce pour 12 langues !

Commençons par extraire le statut Skype au format texte et en langue française (fr) :

  1. $str_status_xml = @file_get_contents('http://mystatus.skype.com/identifiant.xml');
  2. $lang = "fr";
  3. $match = array();
  4. $pattern = "~xml:lang=\"".strtolower($lang)."\">(.*)</~";
  5. preg_match($pattern,$str_status_xml, $match);
  6. $altSkype = $match[1];

La variable $altSkype; contient à présent le statut (format textuel) de la connexion skype.

Certaines images sont avec texte d'autres sans. Problème : les images avec texte ne contiennent pas toujours un libellé qui correspond exactement à celui fourni par le fichier XML. Exemple: quand on n'est pas connecté, le texte de l'image balloon n'est pas 'déconnecté' mais 'Je ne dis rien !'... Du coup, on va partir sur les icônes (les images ne contenant pas de texte). Voici, celle que je choisis:

http://mystatus.skype.com/mediumicon/identifiant

On construit l'alternative textuelle pour l'image à afficher en affectant la valeur de la variable $altSkype; à l'attribut alt de l'image:

<img src="http://mystatus.skype.com/mediumicon/identifiant" width="26" height="26" alt="" />

et notre statut Skype est à présent complètement accessible !

Inviter un internaute à discuter avec vous sur Skype

Skype offre en outre un moyen pour permettre à l'internaute d'initier une discussion skype avec vous via un simple click sur un lien. Voici l'URL qui permet d'initier une discussion Skype avec 'identifiant':

<a href="skype:identifiant?chat">lancer la discussion Skype !</a>

Récupérer son statut au format numérique

C'est sympathique mais pas très utile si le correspondant en question n'est pas là...Il serait plus judicieux de n'afficher ce lien que si le correspondant est effectivement disponible, c'est à dire connecté. Plutôt que de faire une alternative sur du texte, on va le faire sur une valeur numérique. Pour cela, on reprend le fichier XML de statut Skype et on en extrait le statut Skype au format numérique:

  1. $match = array();
  2. $pattern = "~xml:lang=\"NUM\">(\d)</~";
  3. preg_match($pattern,$str_status_xml, $match);
  4. $statut = $match[1];

Voici la valeur de chaque état en fonction de la valeur numérique du statut:

Il ne vous reste plus qu'à coder l'alternative.

Vous pouvez voir le résultat sur ma page de contact.

Autres articles:

1 Commentaire:

Ajouter un commentaire
  1. 22 oct. 2007 à 11:35 par Forgeur

    Merci pour ces informations.

    J'ai pu interfacer le XML avec du Flash, c'est parfait !

    www.forgeur.net