Menu

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

SMS and MMS Notifications with Java and Spark

Download the Code

Today we'll look at a Spark sample application that demonstrates how to send SMS alerts to your system administrators when something goes wrong on your server. We'll do a deep dive on all of the plumbing so you can see how easy it'll be to add notifications to your own application.

See how EMC uses Twilio SMS to send IT alerts to 68,000 employees.

Let's get started!

Click the button below to move to the next step of the tutorial.

Let's Let Spark Fly

List Your Server Administrators, and Whomever Else

Here we create a JSON list of administrators who should be notified if a server error occurs.

The only essential piece of data we need is a phone_number for each administrator.

Loading Code Sample...
      
      
      
      
      src/main/resources/administrators.json

      JSON Administrator list

      src/main/resources/administrators.json

      Next, let's take a look at configuring the Twilio REST Client.

      Configure that Client

      Configuring the Twilio REST Client

      To send a message we'll need to initialize the TwilioRestClient defined in the Twilio Java Helper Library. It requires reading a TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN from environment variables.

      The values for your account SID and Auth Token will be in the Twilio console:

      Twilio Account Summary section of the console

      Click the eyeball to show your Auth Token to copy and paste.

      Loading Code Sample...
          
          
          
          
          src/main/java/utils/Client.java

          Get Twilio Account SID and Auth Token credentials

          src/main/java/utils/Client.java

          Next up, we will look at how to handle application exceptions.

          Next

          Handling the Application Exceptions

          In a Spark application, we can handle exceptions of a configured type for all routes and filters by using exception mapping. This is also where we'll eventually loop through the list and send our alerts.

          Loading Code Sample...
              
              
              
              
              src/main/java/App.java

              Raise an exception

              src/main/java/App.java

              Now let's look at how to create a custom message for our notifications.

              Craft the Perfect Exception Message

              Create a Custom Alert Message

              Here we create an alert message to send out via text message.

              You might also decide to include a picture with your alert message and make it an MMS. Perhaps a screenshot of the application when the crash happened? An 'Everything is Okay' meme image?

              Loading Code Sample...
                  
                  
                  
                  
                  src/main/java/App.java

                  Custom exception message

                  src/main/java/App.java

                  Let's move forward and look at loading the list of administrators.

                  Show Me the List

                  Reading the Administrators from a JSON File

                  Next, we read the admins - and any other lucky people - from our JSON file. We use the Gson Java library to convert our JSON text file into Administrator objects.

                  Loading Code Sample...
                      
                      
                      
                      
                      src/main/java/utils/Repository.java

                      Read the administrator list from disk

                      src/main/java/utils/Repository.java

                      And next, we will see how to send a text message.

                      Push Those Notifications Out

                      Sending a Text Message

                      There are three parameters needed to send an SMS using the Twilio REST API: From, To, and Body.

                      US and Canadian phone numbers can also send an image with the message. Other countries will have the image URL automatically shortened and appended to the body.

                      Loading Code Sample...
                          
                          
                          
                          
                          src/main/java/utils/Client.java

                          And that's a wrap!

                          We've just implemented an automated server notification system for Java and Spark that can push server alerts if anything goes wrong.

                          Let's see what else you can do with the Twilio Java SDK, next.

                          Spark Some New Ideas

                          Where to Next?

                          We love Java here at Twilio. Here're just a couple more examples of using our Java SDK to easily add some features in your application:

                          Automated Survey

                          How well is your team doing when interacting with customers? Instantly collect structured data from your users with a survey conducted over a voice call or SMS.

                          Appointment Reminders

                          A simple tutorial to prevent no-shows at your business - send your customers automatic appointment notifications.

                          Did this help?

                          Thanks for building with us today. Tweet us a comment @twilio to let us know what you think and what you're building!

                          Agustin Camino Jose Oliveros Jennifer Aprahamian Paul Kamp Andrew Baker Kat King

                          Need some help?

                          We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.

                          Loading Code Sample...