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

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

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.