Jump to: navigation, search

Sample Java code to interact with Genesys API

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

import java.util.UUID;

public class Demo {
 
	public static void main(String[] args) throws IOException {	
		
		String username 	= "USERNAME";				// The username provided to the client by Genesys
		String password		= "PASSWORD";				// The password provided to the client by Genesys
		String message 		= "Hey";                                // The message to be sent. 
		String messageId 	= String.valueOf(UUID.randomUUID());	// A unique message id. 
		// In this example we use UUID to generate an ID, but any value can be used as long as it's unique
		String phoneNumber 	= "12345";				// The phone number to which the message is to be sent. 
		String shortCode 	= "99222";				// The shortcode on this message. 
		String carrier 		= "99901";				// The carrier ID can be found in the reach list. 

		String genesysURL 	= "https://smsc-api.genesyscloud.com/httpapi/receiver";
	
		// QueryString to be sent to Genesys API
		String messageBody= URLEncoder.encode( "login", "UTF-8" ) + "=" + URLEncoder.encode( username, "UTF-8" )
		+ "&" + URLEncoder.encode( "password", "UTF-8" ) + "=" + URLEncoder.encode( password, "UTF-8" )
		+ "&" + URLEncoder.encode( "phone_number", "UTF-8" ) + "=" + URLEncoder.encode( phoneNumber, "UTF-8" )
		+ "&" + URLEncoder.encode( "shortcode", "UTF-8" ) + "=" + URLEncoder.encode( shortCode, "UTF-8" )
		+ "&" + URLEncoder.encode( "carrier", "UTF-8" ) + "=" + URLEncoder.encode( carrier, "UTF-8" )
		+ "&" + URLEncoder.encode( "message", "UTF-8" ) + "=" + URLEncoder.encode( message, "UTF-8" )
		+ "&" + URLEncoder.encode( "message_id", "UTF-8" ) + "=" + URLEncoder.encode( messageId, "UTF-8" );
	
		URL url = new URL(genesysURL);	
		HttpURLConnection conn = (HttpURLConnection)url.openConnection();
		conn.setDoOutput(true);
		conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
		conn.setRequestProperty("Accept", "text/plain");
		

		DataOutputStream out = new DataOutputStream(conn.getOutputStream());
		out.writeBytes(messageBody);
		out.flush();		
		out.close();	
		
		// Response Code. If not in 2XX region then the request failed
		if(conn.getResponseCode() < 200 || conn.getResponseCode() > 299){
			System.out.print("The request failed. Please try again in some time.");
			System.exit(0);
		} else {	
			// Printing the Response
			BufferedReader reader= new BufferedReader(new InputStreamReader(conn.getInputStream()));
			String response= reader.readLine();
			
			// Getting the Result Code from the Response
			Integer resultCode= Integer.parseInt(response.split("=")[1]);
		
			switch(resultCode){
			case 0:
				System.out.println("Success: The message has been accepted for processing.");
				break;
			case 1:
				System.out.println("Failure: Either one(or more) require parameters are missing. ");
				break;
			case 2:
				System.out.println("Failure: The credentials provided are either wrong or do not exist.");
				break;
			case 3:
				System.out.println("Failure: The carrier ID is not an Integer value or it does not exist in the reach list.");
				break;
			case 4:
				System.out.println("Failure: The shortcode is not an Integer.");
				break;
			case 5:
				System.out.println("Failure: The shortcode is not registered for the client.");
				break;
			case 6:
				System.out.println("Failure: The client is trying to send more messages in the alloted time than they are allowed.");
				break;
			case 7:
				System.out.println("Failure: This message is a duplicate.");
				break;
			case 8:
				System.out.println("Failure: The message is larger than allowed for the client.");
				break;
			case 98:
				System.out.println("Failure: Internal Server Error. Please try again");
				break;
			case 99:
				System.out.println("Failure: There was some error in processing request. Please try again");
			}
		}
	}	
}
This page was last edited on March 22, 2018, at 20:24.
Comments or questions about this documentation? Contact us for support!