Tchatcher en utilisant sms via sfr api en java

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

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.