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

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.

        
        
        
        
        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.

              
              
              
              
              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.

                    
                    
                    
                    
                    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?

                          
                          
                          
                          
                          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.

                                
                                
                                
                                
                                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.

                                      
                                      
                                      
                                      
                                      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 Paul Kamp Andrew Baker Kat King
                                      Rate this page:

                                      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.