Tchatcher en utilisant sms via sfr api en java

Soyez le premier à donner votre avis sur cette source.

Vue 7 895 fois - Téléchargée 1 017 fois

Description

Cette application permet de tchatcher en utilisant des SMS.

L'application est construite via l'API Test Tool de SFR API http://api.sfr.fr/apitesttool . Il est conseillé de s'inscrire pour utiliser votre propre Token plutôt que le Token de l'exemple dont le compteur de crédits peut être épuisé.

Cette application est utilisable sur tout type de système connecté à internet.

Vous trouvez ci-joint le code source complet de l'application.

Source / Exemple :


import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;

public class SendSMS {
	String url = "";
	String textMessage="";
	String Message="";
	
	SendSMS(String phoneNumber,String Message,String token ) throws UnsupportedEncodingException
	{
		textMessage = URLEncoder.encode( Message	, "UTF-8");
		this.Message=Message;
		
		//requete extraite de api.sfr.fr/apitesttool
		url = "http://ws.red.sfr.fr/red-ws/red-b2c/resources/sms/send?responseType=xml&token="
			+ token + "&to=" + phoneNumber + "&type=PhoneNumber&msg="
			+ textMessage;
	}
	
	public String Send() throws Exception
	{
		//Envoyer une requête GET 
		URL client = new URL(url);
		URLConnection conn = client.openConnection();
		InputStream responseBody = conn.getInputStream();
		
		//Convertir les données en XML document 
		Document response = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(responseBody);
		responseBody.close();

		XPath xPath = XPathFactory.newInstance().newXPath();
		String erreur = xPath.evaluate("/sms/errorCode", response);

		
		//Retourne  le message envoyer
		if (erreur.equals("0")) return "Moi: "+Message; 
		//Retourne les informations d’erreur 
		else return "Moi :"+xPath.evaluate("/sms/error", response);
		
	}

}

-----------------------------------------------------------------------------------------------------------------
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;

public class ReceiveSMS {

	String url = "";
	String textMessage="";
	String result="";
		
	ReceiveSMS (String token ) throws UnsupportedEncodingException
	{
		//requete extraite de api.sfr.fr/apitesttool
		url = "http://ws.red.sfr.fr/red-ws/red-b2c/resources/event/consume?responseType=xml&token=" + token ;	
	}
	
	public String Receive() 
	{	
		Thread timer= new Thread()	
		{
		public void run(){
			
		URL client;
		while(result.equals(""))		
		{
		try {
			
			//Envoyer une requête GET 
			client = new URL(url);		
			URLConnection conn = client.openConnection();
			InputStream responseBody = conn.getInputStream();
			
			//Convertir les données en XML document 
			Document response = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(responseBody);
			responseBody.close();
			
			//Récupération du message envoyer 
			XPath xPath = XPathFactory.newInstance().newXPath();
			String eventCode = xPath.evaluate("/event/redEvent/eventCode", response);
			if (eventCode.equals("11")) result= xPath.evaluate("/event/redEvent/eventSource", response)
											+ " : " + xPath.evaluate("/event/redEvent/eventMessage", response); 
			else sleep(1000000);
		
			} catch (Exception e) {
			
			e.printStackTrace();
			}
		}}};
		
		timer.start();		
		try {
			timer.join();
		} catch (InterruptedException e) {
			
			e.printStackTrace();
		}
		return result;

      }
	}

-----------------------------------------------------------------------------------------------------------------

import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;

public class AtribShortNum {

	String url = "";
	String textMessage="";
	String phoneNumber ="";
	String token="";
	
	AtribShortNum(String phoneNumber,String token)
	{
		this.phoneNumber=phoneNumber;
		this.token=token;	
		//requete extraite de api.sfr.fr/apitesttool
		url = "http://ws.red.sfr.fr/red-ws/red-b2c/resources/shortcode/generateSmsShortcode?responseType=xml&token="
			+token + "&msisdn=" + phoneNumber;	
	}
	
	public String attribute()
	{
		String res="";
		URL server;
		try {
			//Envoyer une requête GET 
			server = new URL(url);
			URLConnection connect = server.openConnection();
			InputStream responsBody = connect.getInputStream();
			
			//Convertir les données en XML document 
			Document respons = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(responsBody);
			responsBody.close();
			
			//Informer le correspondant de son numéro court s'il n'y a pas d'erreur
			XPath xPath = XPathFactory.newInstance().newXPath();
			String erreur = xPath.evaluate("/shortcode/errorCode", respons);
			if (erreur.equals("0"))
			{	
			SendSMS SMS= new SendSMS(phoneNumber,"Bonjour pour communiquer avec moi adressez vos SMS au "+xPath.evaluate("/shortcode/shortcode", respons),token);	
			res=SMS.Send();
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return res;
	}
	
}

-----------------------------------------------------------------------------------------------------------------

import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.swing.JOptionPane;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;

public class IsSFRNum  {
	String url = "";
	IsSFRNum(String phoneNumber,String token ) 
	{		
		//requete extraite de api.sfr.fr/apitesttool
		url = "http://ws.red.sfr.fr/red-ws/red-b2c/resources/sis/mvnoinfo?responseType=xml&token="
				+ token + "&userIdentifier=" + phoneNumber + "&type=PhoneNumber";		
	 }
	
	public boolean Test() throws Exception
	{
        //Envoyer une requête GET 
		URL client = new URL(url);	
		URLConnection conn = client.openConnection();
		InputStream responseBody = conn.getInputStream();
		
		//Convertir les données en XML document 
		Document response = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(responseBody);
		responseBody.close();
		
		//Xpath expression pour récupérer le nom de l'opérateur du numéro
		XPath xPath = XPathFactory.newInstance().newXPath();
		String lignetype = xPath.evaluate("/sis/mvnoInfo/labelMvno", response);

		if (lignetype.equals("SFR")) return true; 
		else 
		{
			JOptionPane.showMessageDialog(null, xPath.evaluate("/sis/errorLabel", response), "Error", JOptionPane.ERROR_MESSAGE);
			return false;
		}
		
		
	}

}

Conclusion :


Cette application utilise les API : info client, numéros courts, SMS, évènements, qui servent à tester si un numéro appartient au réseau SFR , attribuer un numéro court , envoyer SMS , recevoir 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... etc.

AHMIM Ahmed
Membre de l'équipe SFR API

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Apparemment, l'adresse api.sfr.fr ne répond plus :/
Messages postés
15
Date d'inscription
lundi 1 septembre 2003
Statut
Membre
Dernière intervention
11 octobre 2011

une partie de la documentation se trouve sur api.sfr.fr/api par exemple, l'envoi de sms se trouve ici http://api.sfr.fr/api/sms#api-navtab.
cela dit un wiki est en cours de rédaction, il sera directement accessible trés prochainement depuis l'api test tool et j'espére que cela vous simplifiera la vie.
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

je m'attendais a trouver une explication en toutes lettre de ce que fait chaque API, sans avoir a les utiliser au hasard pour comprendre le fonctionnement

Si cela existe je suis preneur. La mise en forme via le Test Tool est faite pour quelque chose que l'on veux tester, donc que l'on connais.

Votre site s’adresse a des développeur qui ont un besoin exprimé, mais qui ne savent pas quel API correspond a ce besoin, mettez vous a notre place, et dites vous que faire du reverse via des nom d'api avec 0 infos ce n'est pas faisable, le nombre d'heure de travail de perdu a cause d eca est difficilement justifiable :(

Une documentation auto-généré via un tool tel que SandCastle (ou un de ses concurrent pour Java etc ...) aurait été d'une énorme aide pour al communauté. Imaginez vous bien que vous avez développé ces API, pas nous. Vous les connaissez surement par coeur, malheureusement c'est loin d'être le cas pour 99% des développeurs qui se heurte a une listbox / combobox sans support
Messages postés
7
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
15 avril 2011

Bonjour

Vous trouverez tous les détails de l’API REST de SFR dans la page suivante http://api.sfr.fr/apitesttool#

AHMIM Ahmed
Membre de l'équipe SFR API
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

D'un point de vu objectif, il est plus que nécessaire de revoir totalement le plan du site des API, il est actuellement impossible de naviguer pour tout un tas de raison qui concerne le chef de projet de ce site chez SFR.
Impossible de trouvé quelque information que ce soit de manière direct, pas de structure etc ...
du coup j'en viens a posé ma question ici :
REST étant simplement un "protocole" je me demande ou se trouve la doc / liste des API dispo en REST de chez SFR.
Afficher les 7 commentaires

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.