je viens de créer un script pour récupérer le nombre de messages dans la boîte vocale Free (ADSL).
je le soumets à votre jugement avant de le packager pour le store ...
- Code : Tout sélectionner
<?
// Version v0.1
// Ce script permet de récupérer la liste des messages sur la messagerie vocale Free (ADSL)
// Les variables à passer en paramètre:
// [VAR1] = Login du compte Free
// [VAR2] = Mot de passe de compte Free
// Exemple d'appel du script avec variables: http://localhost/script/?exec=free_messagerie.php&login=[VAR1]&passwd=[VAR2]
// Le résultat est obtenu sous forme XML
// xPath pour récupérer simplement le nombres de messages: count(/FreeMessagerie/Messages/Message)
// Stocker les variables passées en argument
$login = getArg('login');
$passwd = getArg('passwd');
// Authentification et création de session
$url = "https://subscribe.free.fr/login/login.pl";
$post = 'login='.$login.'&pass='.$passwd.'&ok=Submit+Query';
$logindata = httpQuery($url, 'POST', $post);
// Gestion de la messagerie vocale
$urlpos = strpos($logindata, "notification_tel");
$urlendpos = strpos($logindata, '"', $urlpos);
$url = "https://adsl.free.fr/".substr($logindata, $urlpos, $urlendpos - $urlpos);
$url = str_replace("&", "&", $url);
$voicemaildata = httpQuery($url, 'GET');
// Généraation de l'XML
$content_type = 'text/xml';
sdk_header($content_type);
echo "<FreeMessagerie>";
echo "<Messages>";
if(!strpos($voicemaildata, "Pas de nouveau message"))
{
//preg_match_all('/<td nowrap>Nouveau message<\/td><td>(?P<telephone>\d+)<\/td><td nowrap>(?P<date>.{19})<\/td><td nowrap>(?P<duree>\d+)/', $voicemaildata, $matches);
preg_match_all('/<td nowrap>Nouveau message<\/td><td>(?P<telephone>\d+)<\/td><td nowrap>(?P<date>.*)<\/td><td nowrap>(?P<duree>\d+)/', $voicemaildata, $matches);
for($i = 0; $i < count($matches[0]); $i++)
{
echo "<Message>";
echo "<Provenance>".$matches["telephone"][$i]."</Provenance>";
echo "<Date>".$matches["date"][$i]."</Date>";
echo "<Duree>".$matches["duree"][$i]."</Duree>";
echo "</Message>";
}
}
echo "</Messages>";
echo "</FreeMessagerie>";
?>
Suffit de créer un capteur HTTP avec l'adresse suivante:
- Code : Tout sélectionner
http://localhost/script/?exec=free_messagerie.php&login=[VAR1]&passwd=[VAR2]
Et en mettant dans VAR1 et VAR2 respectivement vos login et mot de passe de votre abonnement Free.
le xPath pour avoir le nombre de messages :
- Code : Tout sélectionner
count(/FreeMessagerie/Messages/Message)
Pour les curieux, vous verez que le XML retourne en fait les N° d'appelants, date et durée des messages ... si jamais ça vous intéresse ...
Merci de votre retour