Accueil > > > WIKILOC : L'ARTICLE WIKIPEDIA SUR VOTRE MOBILE SFR LE PLUS PROCHE DE L'ENDROIT OU VOUS ÊTES PAR UN SIMPLE SMS VIA SFR API
WIKILOC : L'ARTICLE WIKIPEDIA SUR VOTRE MOBILE SFR LE PLUS PROCHE DE L'ENDROIT OU VOUS ÊTES PAR UN SIMPLE SMS VIA SFR API
Information sur la source
Description
WikiLoc permet de recevoir l'article Wikipedia le plus pertinent proche de l'endroit ou vous vous situez. Il suffit d'envoyer depuis une ligne SFR, le SMS : "#wikiloc# wiki" au 6010 (numéro gratuit). 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 gratuit pour ne plus avoir besoin du #wikiloc# en envoyant "#wikiloc# short" au 6010 (en général le numéro proposé sera le 1812). 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.
Source
- <?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
- define("DEVTOKEN","81e3d203dd52a852fa986624c718929c");
-
- // 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) {
- $params = array('http' =>
- array('method'=>$method,
- 'content'=>$data,
- 'timeout'=>20
- ));
-
- if ($optional_headers !== null) {$params['http']['header'] = $optional_headers;}
-
- $ctx = stream_context_create($params);
- $fp = @fopen($url, 'rb', false, $ctx);
-
- if (!$fp) {
- //throw new Exception("Problem with $url, $php_errormsg");
- echo("Requete en echec\n");
- return(null);
- }
- $response = @stream_get_contents($fp);
-
- 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"...
- if(strtolower($event->redEvent->eventMessage)=="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";
- $rc=simplexml_load_string(RestRequest($url));
-
- //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#
- if(strtolower($event->redEvent->eventMessage)=="short"){
- $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");
- }
- }
- ?>
<?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
define("DEVTOKEN","81e3d203dd52a852fa986624c718929c");
// 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) {
$params = array('http' =>
array('method'=>$method,
'content'=>$data,
'timeout'=>20
));
if ($optional_headers !== null) {$params['http']['header'] = $optional_headers;}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
//throw new Exception("Problem with $url, $php_errormsg");
echo("Requete en echec\n");
return(null);
}
$response = @stream_get_contents($fp);
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"...
if(strtolower($event->redEvent->eventMessage)=="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";
$rc=simplexml_load_string(RestRequest($url));
//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#
if(strtolower($event->redEvent->eventMessage)=="short"){
$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");
}
}
?>
Conclusion
Cet exemple utilise les API de géolocalisation, d'envoi et de réception des SMS. D'autres API sont disponibles sur SFR API : envoyer des photos, vidéo, son via MMS, gérer le carnet de contacts, identifier les modèles de mobile, ...
Hervé Hoareau Responsable SFR API
Historique
- 22 février 2011 00:00:15 :
- ajout de la nécessité d'être client SFR
- 22 février 2011 10:50:29 :
- compléments divers et signature
- 22 février 2011 22:40:43 :
- Rappel de la gratuité du 6010
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Des API SFR pour les développeurs [ par djimdba ]
Hello les amis, Suite à une visite que j'ai faite sur le site de SFR dédié aux développeurs (ou je me suis inscrit d'ailleurs), j'ai trouvé des choses
PHP et SMS [ par mahamourta ]
Bonjour Je suis en train de concevoir une application web qui nécessite une partie SMS de sorte que l'administrateur puisse emmètre des messages su
Google Maps API & PHP [ par begueradj ]
Bonjour, Peut-on utiliser Google Maps plusieurs fois sur son site par une même clé ?
demande d'aide sur la reception des sms à partir du modem gsm [ par carodong ]
j'ai un problème. je travaille actuellement sur mon projet de fin d'étude et je developpe un site web sur le transfert de la monnaie avec l'envoi et l
demande d'aide sur la reception des sms à partir du logiciel gammu sous windows [ par carodong ]
je travaille actuellement sur un site web d'envoi et reception des sms en php. on m'a proposé pour la reception le logiciel gammu(pour windows)pour ré
Envoie des sms de l'ordinateur vers un telephone mobile [ par vinceslas ]
Bonjour, Depuis une semaine je cherche comment envoyé en utilisant un programme php des sms de l'ordinateur vers un téléphone mobile mais les résultat
Envoi de SMS en masse [ par lilwill ]
Bonjour à tous et merci d'avance pour votre aide. Voici mon problème: je suis en train de créer un site d'envoi de SMS. J'ai donc décidé d'ajouter un
Api pour RueDuCommerce ? [ par Dacobah ]
Bonjour, de la même manière qu'il existe une API pour Amazon, j'aimerais savoir où trouver celle de RueDuCommerce (ou ce qui y ressemble) pour commun
API Vimeo - Empty reply from server [ par Blacknight91titi ]
Bonjour, Le problème que je décris ci-dessous me semble assez délicat étant donné le peu d'informations que j'ai pour m'aiguiller. Travaillant avec
Verificateur de liens megavideo [ par tib14 ]
Bonjour, désolé de vous déranger, mais je cherche à obtenir un vérificateur de lien megavideo. J'ai cherché partout sur internet, mais je ne n'en ai p
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|