A Java library for communicating with the Twilio API and generating TwiML
Java
Pull request Compare This branch is 3 commits ahead, 1479 commits behind twilio:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
src
test/com/twilio/sdk
.gitignore
AUTHORS
LICENSE
README.md
build.properties
build.xml
ivy.xml

README.md

Installing

The pre-built jars are available at:

http://twilio.github.com/twilio-java/jars/TwilioJava-3.3.5-with-dependencies.jar http://twilio.github.com/twilio-java/jars/TwilioJava-3.3.5.jar - use this if you have issues with conflicting jars in your project. You'll need to include versions of the dependencies yourself. See the ivy.xml for the list of libraries.

You can view the javadocs for this project at: http://twilio.github.com/twilio-java

Building From Source

Important: you must have ant installed to build the project from source.

If you would like to build twilio-java from source just clone the project (located at https://github.com/twilio/twilio-java) and run:

cd twilio-java
ant 

This will build two jars in twilio-java/dist/lib/ The first is a jar of only code related to the twilio-java project useful when integrating into a larger project. The second is a jar bundling twilio-java with all of its dependencies into a standalone jar. (see ivy.xml for the full list of dependencies)

This will also build the javadoc in twilio-java/dist/api. You can open the index.html located there to view it locally.

Examples

Here are some examples (also found in TwilioRestExamples.java)

	// Create a rest client
	TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);

	// Get the main account (The one we used to authenticate the client
	Account mainAccount = client.getAccount();

	// Get all accounts including sub accounts
	AccountList accountList = client.getAccounts();

	// All lists implement an iterable interface, you can use the foreach
	// syntax on them
	for (Account a : accountList) {
		System.out.println(a.getFriendlyName());
	}

	// You can also iterate manually...
	Iterator<Account> itr = accountList.iterator();
	while (itr.hasNext()) {
		Account a = itr.next();
		System.out.println(a.getFriendlyName());
	}

	// You can also get just the first page of data
	accountList = client.getAccounts();
	List<Account> accounts = accountList.getPageData();

	// Make a call
	CallFactory callFactory = mainAccount.getCallFactory();
	Map<String, String> callParams = new HashMap<String, String>();
	callParams.put("To", "5105551212"); // Replace with a valid phone number
	callParams.put("From", "(510) 555-1212"); // Replace with a valid phone number in your account
	callParams.put("Url", "http://demo.twilio.com/welcome/voice/");
	Call call = callFactory.create(callParams);
	System.out.println(call.getSid());

	// Send an sms
	SmsFactory smsFactory = mainAccount.getSmsFactory();
	Map<String, String> smsParams = new HashMap<String, String>();
	smsParams.put("To", "5105551212"); // Replace with a valid phone number
	smsParams.put("From", "(510) 555-1212"); // Replace with a valid phone number in your account
	smsParams.put("Body", "This is a test message!");
	smsFactory.create(smsParams);

	// Search for available phone numbers & then buy a random phone number
	AvailablePhoneNumberList phoneNumbers = mainAccount.getAvailablePhoneNumbers();
	List<AvailablePhoneNumber> list = phoneNumbers.getPageData();

	// Buy the first number returned
	Map<String, String> params = new HashMap<String, String>();
	params.put("PhoneNumber", list.get(0).getPhoneNumber());
	params.put("VoiceUrl", "http://demo.twilio.com/welcome/voice/");
	mainAccount.getIncomingPhoneNumberFactory().create(params);

	// View a conference using its sid
	Conference c = mainAccount.getConference("CA12345...");
	ParticipantList participants = c.getParticipants();

	for (Participant p : participants) {
		// Randomly mute or kick each participant
		if (Math.random() > 0.5) {
			p.mute();
		} else {
			p.kick();
		}
	}

	// Make a raw HTTP request to the api... note, this is deprecated style
	TwilioRestResponse resp = client.request("/2010-04-01/Accounts", "GET", null);
	if (!resp.isError()) {
		System.out.println(resp.getResponseText());
	}