Cette application permet de localiser les téléphones portable SFR et Orange
L'application est construite via l'API Test Tool de SFR API
http://api.sfr.fr/apitesttool et l'API Orange.
Pour tester l'application avec des numéros SFR vous pouvez utiliser le Token de l'exemple par contre pour des numéros orange vous devez utiliser votre propre Access Key.Il est conseillé de s'inscrire pour utiliser votre propre Token SFR plutôt que le Token de l'exemple dont le compteur de crédits peut être épuisé.
L'inscription est gratuite de plus vous obtenez 7000 crédits gratuitement.
Vous trouverez ci-joint le code source complet ainsi qu'un exécutable pour tester immédiatement l'application.
Source / Exemple :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace Geoloc
{
class SFRAPIGeoloc
{
string url="";
public string getLocalize(string Token, string PhoneNumber)
{
try
{
//url du service du geolocalisation de SFR
url = "http://ws.red.sfr.fr/red-ws/red-b2c/resources/loc/localize?responseType=xml" +
"&token=" + Token + "&userIdentifier=" + PhoneNumber + "&type=PhoneNumber";
// envoie la requete
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(url);
// analyse de la reponse
string erreur = xmldoc.SelectSingleNode("/loc/errorCode").InnerText;
// s'il n' a pas d'exception
//interogation du service de google Map pour transformer le cordonnées GPS en adresse
if (erreur == "0")
{
url = "http://maps.googleapis.com/maps/api/geocode/xml?latlng=" +
xmldoc.SelectSingleNode("/loc/location/latitude").InnerText + "," +
xmldoc.SelectSingleNode("/loc/location/longitude").InnerText
+ "&sensor=true";
xmldoc = new XmlDocument();
xmldoc.Load(url);
return "address : "+xmldoc.SelectSingleNode("/GeocodeResponse/result/formatted_address").InnerText;
}
else
return "State:"+xmldoc.SelectSingleNode("/loc/error").InnerText;
}
catch (Exception e)
{
return e.Message;
}
}
}
}
//--------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace Geoloc
{
class AttribShortNum
{
string url="";
string erreur="";
public string attribute(string Token,string PhoneNumber)
{
try{
//Url du service d'attribution du numéro court de SFR
url = "http://ws.red.sfr.fr/red-ws/red-b2c/resources/shortcode/generateSmsShortcode?responseType=xml&token=" +
Token + "&msisdn=" + PhoneNumber ;
// Envoyer la requête
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(url);
// Analyser la réponse
erreur = xmldoc.SelectSingleNode("/shortcode/errorCode").InnerText;
// S’il n'y a pas d'exception, retourner le numéro court
if (erreur == "0") return xmldoc.SelectSingleNode("/shortcode/shortcode").InnerText;
// sinon retourné le type d'erreur
else return xmldoc.SelectSingleNode("/shortcode/error").InnerText;
} catch (Exception e)
{
return e.Message;
}
}
}
}
//------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace Geoloc
{
class OrangeAPIGeoloc
{
string url = "";
public string getAgreement(string AccessKey, string PhoneNumber)
{
try
{
url = "http://run.orangeapi.com/location/createAuthorization.xml?id=" + AccessKey + "&number=" + PhoneNumber;
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(url);
string erreur = xmldoc.SelectSingleNode("/response/status/status_code").InnerText;
if (erreur == "200") { return xmldoc.SelectSingleNode("/response/call_info/call_id").InnerText; }
else return xmldoc.SelectSingleNode("/response/status/status_msg").InnerText;
}
catch (Exception e)
{
return e.Message;
}
}
public string getLocalize(string AccessKey, string PhoneNumber)
{
try
{
url = "http://run.orangeapi.com/location/getLocation.xml?id=" + AccessKey +
"&number=" + PhoneNumber;
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(url);
string erreur = xmldoc.SelectSingleNode("/response/status/status_code").InnerText;
if (erreur == "200")
{
url = "http://maps.googleapis.com/maps/api/geocode/xml?latlng=" +
xmldoc.SelectSingleNode("response/location/X").InnerText.Replace("+", "") + "," +
xmldoc.SelectSingleNode("response/location/Y").InnerText.Replace("+", "")
+ "&sensor=true";
xmldoc = new XmlDocument();
xmldoc.Load(url);
return "addresss : "+xmldoc.SelectSingleNode("/GeocodeResponse/result/formatted_address").InnerText;
}
else if (erreur == "451") return "Agreement : "+getAgreement(AccessKey, PhoneNumber)
+ "State :" + xmldoc.SelectSingleNode("/response/status/status_msg").InnerText;
else return "State :" + xmldoc.SelectSingleNode("/response/status/status_msg").InnerText;
}
catch (Exception e)
{
return e.Message;
}
}
}
}
//--------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace Geoloc
{
class IsSFRnum
{
string url = "";
public bool IsSFRnumero( string token, string phoneNumber)
{
try
{
//url du service du teste d'appartenance des numéros téléphonique au réseau SFR
url = "http://ws.red.sfr.fr/red-ws/red-b2c/resources/sis/mvnoinfo?responseType=xml&token="
+ token + "&userIdentifier=" + phoneNumber + "&type=PhoneNumber";
//Envoyer une requête GET
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(url);
// analyser de la reponse
string erreur = xmldoc.SelectSingleNode("/sis/errorCode").InnerText;
if (erreur == "0") return true;
else return false;
}
catch
{
return false;
}
}
}
}
//--------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Geoloc
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
IsSFRnum sfrnum = new IsSFRnum();
//si c'est un numéro SFR
if (sfrnum.IsSFRnumero(textBox2.Text, textBox1.Text))
{
// attribuer un numéro court
AttribShortNum attbribu = new AttribShortNum();
attbribu.attribute(textBox2.Text, textBox1.Text);
// géolocaliser le numéro SFR
SFRAPIGeoloc geoloc = new SFRAPIGeoloc();
richTextBox1.Text = richTextBox1.Text + "\n" + geoloc.getLocalize(textBox2.Text, textBox1.Text);
}
else
{
// géolocaliser le numéro Orange
OrangeAPIGeoloc geolocOrange = new OrangeAPIGeoloc();
richTextBox1.Text = richTextBox1.Text + "\n" + geolocOrange.getLocalize(textBox3.Text, textBox1.Text);
}
}
}
}
Conclusion :
Cette application utilise L'API geoloc de Orange et les API SFR : info client, geoloc, évènements, qui servent à tester si un numéro appartient au réseau SFR, attribuer un numéro court à un mobile SFR, géolocaliser un mobile SFR. D'autres API SFR 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... etc.
AHMIM Ahmed
Membre de l'équipe SFR API
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.