Géolocalisation des mobiles sfr et orange en c#.net via sfr api et orange api

Soyez le premier à donner votre avis sur cette source.

Vue 13 203 fois - Téléchargée 1 424 fois

Description

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

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Rescassol
Messages postés
10
Date d'inscription
samedi 14 février 2004
Statut
Membre
Dernière intervention
2 octobre 2011
-
Ça a l'air intéressant, mais où trouve-t-on les token et autres access keys ?
aahmim
Messages postés
7
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
15 avril 2011
-
Pour avoir le Token SFR, vous devez juste vous inscrire sur le site web de SFR API : http://api.sfr.fr/api. Après l’inscription SFR vous offrira automatiquement 7000 crédits gratuitement.
Par contre, tu dois acheter des Access Key pour tester avec des numéros Orange.
piergel
Messages postés
51
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
18 août 2009
-
Lorsque je teste l'appli (avec un numéro SFR), j'obtiens comme message "State:Agreement pending exception". Cela veut-il dire que les 7000 crédit associés au token de l'exemple sont épuisés ?
aahmim
Messages postés
7
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
15 avril 2011
-
Non si vous avez eu ce message, ça signifie que tu dois avoir l’agrément de géolocaliser ce numéro. Pour avoir l’agrément le propriétaire de numéro doit répondre par : OUI « alias de service » au 6010, soit accepter la demandée de géolocalisation sur le site de SFR API http://api.sfr.fr/acces/ .
Vous trouverez plus de détail sur le site web de SFR API http://api.sfr.fr/.
piergel
Messages postés
51
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
18 août 2009
-
Le propriétaire du numéro doit recevoir un SMS ? j'ai testé avec 2 numéros SFR dont le mien, je n'ai rien reçu. C'est un abonnement pro, peut-être est-ce la personne qui s'occupe de nos abonnements dans ma boite qui a reçu la demande...
Autre question : j'ai lu sur le site SFR que l'agrément est donné une seule fois. Mais est-il donné pour toute demande de géolocalisation ? ou seulement une demande provenant de mon application ? ou d'une instance précise de mon application sur un PC ?
Dans le premier cas, cela signifierait qu'à partir de là, n'importe qui peut me géolocaliser
dans les derniers cas, comment techniquement est faite l'association avec l'application ?

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.