Rendre votre statut Skype accessible sur votre site web [589 mots]
Posté le 30 juin 2007 à 15:17 | Vu 1138 fois |
1 commentaire | Tags:
accessibilité, Skype
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'):
http://mystatus.skype.com/balloon/identifiant: Balloon stylehttp://mystatus.skype.com/bigclassic/identifiant: Big Classic Stylehttp://mystatus.skype.com/smallclassic/identifiant: Small Classic Stylehttp://mystatus.skype.com/smallicon/identifiant: Small Icon (transparent background)http://mystatus.skype.com/mediumicon/identifiant: Medium Iconhttp://mystatus.skype.com/dropdown-white/identifiant: Dropdown White Backgroundhttp://mystatus.skype.com/dropdown-trans/identifiant: Dropdown Transparent Background
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) :
$str_status_xml = @file_get_contents('http://mystatus.skype.com/identifiant.xml');$lang = "fr";$match = array();$pattern = "~xml:lang=\"".strtolower($lang)."\">(.*)</~";preg_match($pattern,$str_status_xml, $match);$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:
$match = array();$pattern = "~xml:lang=\"NUM\">(\d)</~";preg_match($pattern,$str_status_xml, $match);$statut = $match[1];
Voici la valeur de chaque état en fonction de la valeur numérique du statut:
- 0 = UNKNOWN Not opted in or no data available.
- 1 = OFFLINE The user is Offline
- 2 = ONLINE The user is Online
- 3 = AWAY The user is Away
- 4 = NOT AVAILABLE The user is Not Available
- 5 = DO NOT DISTURB The user is Do Not Disturb (DND)
- 6 = INVISIBLE The user is Invisible or appears Offline
- 7 = SKYPE ME The user is in Skype Me mode
Il ne vous reste plus qu'à coder l'alternative.
Vous pouvez voir le résultat sur ma page de contact.
Autres articles:
- article précédent : Créer un fil de syndication avec Symfony en...5 minutes !
- article suivant : Modifier la taille du texte
1 Commentaire:
-
22 oct. 2007 à 11:35 par ForgeurMerci pour ces informations.
J'ai pu interfacer le XML avec du Flash, c'est parfait !
www.forgeur.net