Présentation
Il suffit d'envoyer depuis une ligne SFR, le SMS : "#wikiloc# wiki" au 6010. Vous recevez dans les 5 minutes, la réponse par SMS sous forme d'un lien cliquable. Ce service ne fonctionne qu'avec des lignes SFR.
il est également possible d'obtenir un numéro court pour ne plus avoir besoin du #wikiloc# en envoyant "#wikiloc# short" au 6010.
Les requêtes ont été construites via l'API Test Tool de SFR API. Il est conseiller de s'inscrire pour utiliser votre propre identifiant plutôt que l'identifiant de l'exemple dont le compteur de crédits peut être épuisé.
Le code PHP, doit être appelé automatiquement a fréquence régulière via un cron afin d'analyser la file des SMS entrants. Dans notre exemple, ce code est hébergé chez free et régulièrement appelé par cronjobonline.
il est également possible d'obtenir un numéro court pour ne plus avoir besoin du #wikiloc# en envoyant "#wikiloc# short" au 6010.
Les requêtes ont été construites via l'API Test Tool de SFR API. Il est conseiller de s'inscrire pour utiliser votre propre identifiant plutôt que l'identifiant de l'exemple dont le compteur de crédits peut être épuisé.
Le code PHP, doit être appelé automatiquement a fréquence régulière via un cron afin d'analyser la file des SMS entrants. Dans notre exemple, ce code est hébergé chez free et régulièrement appelé par cronjobonline.
<?php //TOKEN g?n?r? ? titre de demonstration par SFR //le nombre de SMS disponibles sur ce compte peut ?tre ?puis? //il est conseiller de vous inscrire sur api.sfr.fr pour obtenir votre propre token // RestRequest est une fonction g?n?rique pour ex?cuter des requ?tes REST en PHP // cette fonction utilise fopen. Elle est compatible avec l'h?bergement gratuit chez Free. function RestRequest ($url, $method='GET', $data=null, $optional_headers = null) { 'content'=>$data, 'timeout'=>20 )); if ($optional_headers !== null) {$params['http']['header'] = $optional_headers;} if (!$fp) { //throw new Exception("Problem with $url, $php_errormsg"); echo("Requete en echec\n"); return(null); } if ($response === false) {throw new Exception("Problem reading data from $url, $php_errormsg");} return $response; } //Le code principale est appell? r?guli?rement via un cron //Sur cronjobonline il est possible de mettre en place //gratuitement un appel r?gulier pour une page php. //Via la m?thode Consume on interroge la file des SMS entrants //cette m?thode ? ?t? construite via l'API Test Tool d'SFR API : api.sfr.fr/apitesttool $event=simplexml_load_string(RestRequest("http://ws.red.sfr.fr/red-ws/red-b2c/resources/event/consume?responseType=xml&token=".DEVTOKEN)); if($event->redEvent->eventCode==11) { //On r?cup?re le num?ro de l'exp?diteur $exp=$event->redEvent->eventSource; //Si le message est "wiki"... //... On g?olocalise la ligne ?metrice //la premi?re fois il faut qu'elle confirme qu'elle accepte d'?tre g?olocalis?e par WikiLoc //si elle confirme la localization peut ?tre r?alis?e $url="http://ws.red.sfr.fr/red-ws/red-b2c/resources/loc/localize?responseType=xml&token=".DEVTOKEN. "&userIdentifier=".$exp."&type=PhoneNumber"; //Si la localisation a pu ?tre r?alis?e errorcode=0 ... if(($rc)&&($rc->errorCode==0)){ $lng=$rc->location->longitude; $lat=$rc->location->latitude; //... On interroge le service geoname pour r?cup?r? les articles wikipedia les plus proches //Le service est interog? avec le username "sfrapi", il est conseiller de vous inscrire //afin d'utiliser votre propre compte $xml=simplexml_load_string(RestRequest("http://api.geonames.org/findNearbyWikipedia?lat=".$lat."&lng=".$lng."&username=sfrapi&style=full")); if($xml) //puis on recherche l'article le plus pertinent dans la liste des articles //retourn?s par geoname for($i=0;$i<count($xml->entry);$i++){ $article=$xml->entry[$i]; if($article->rank>$max){$max=$article->rank;$best=$article;} } //Enfin le lien vers l'article le plus pertinent est renvoy? via SMS au demandeur. RestRequest("http://ws.red.sfr.fr/red-ws/red-b2c/resources/sms/send?responseType=xml&token=".DEVTOKEN."&to=".$exp."&type=PhoneNumber&msg=".$best->wikipediaUrl); } } //Si le message est "short" on affecte un num?ro court ? l'exp?diteur qui //pourra ?tre utilis? pour ?viter l'usage du 6010 avec l'alias #wikiloc# $xml=simplexml_load_string(RestRequest("http://ws.red.sfr.fr/red-ws/red-b2c/resources/shortcode/generateSmsShortcode?responseType=json&token=".DEVTOKEN."&msisdn=".$exp)); if($xml->errorCode==0) RestRequest("http://ws.red.sfr.fr/red-ws/red-b2c/resources/sms/send?responseType=xml&token=".DEVTOKEN."&to=".$exp."&type=PhoneNumber&msg=utilisez%20ce%20numero%20pour%20interroger%20wikiloc%20en%repondant%20wiki"); } } ?>
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.




La discussion sur le forum
Poster une réponse