How to enable Grails application to send SMS via Twilio API

How to send SMS with Grails Application via Twilio



 

Are you trying to send text messages from your Grails web application? If your answer is Yes then you are in luck. If your answer is No .. well... stick around... you'll learn something. 

Target audience:

People interested in software development, Grails framework and Groovy programming language.
This article may be more interesting if you already know Grails framework. 

What you need:

  1. A twilio account with your API keys
  2. The grails-twilio plugin
  3. Your grails application ( Grails version 2.x and above )

To create a twilio account, please visit http://www.twilio.com. Copy your API Keys
The twilio-grails plug-in provides sms sending capability to a Grails application via twilio api.
Configuration

Add twilio plugin

Depending on what version of Grails you are using, open your buildConfig.groovy file or build.gradle file and add the following line.

compile "org.grails.plugins:twilio:0.1"
for grails 2.x

and 

compile "org.grails.plugins:twilio:0.1.0"
For grails 3.x

Add twilio properties

Add your twilio properties to grails configuration file: The config file for grails 2.x is Config.groovy. For Grails 3.x users, please add the following to your application.groovy file or application.yml ( Use yml syntax )
twilio {
    // Enter your host address
    host = 'https://api.twilio.com'
    apiID = 'enter your api Id'
    apiPass = 'enter your api password'
    smsUrl = '/2010-04-01/Accounts/' + apiID + '/Messages.json'
    number = ""
}

Add more dependencies

Copy and paste the following to your BuildConfig.groovy or Build.gradle file 
 compile(group:'org.apache.httpcomponents',name:'httpclient',version:'4.3.6') compile(group:'org.apache.httpcomponents',name:'fluent-hc',version:'4.3.6') compile(group:'org.apache.httpcomponents',name:'httpclient-cache',version:'4.3.6') compile(group:'org.apache.httpcomponents',name:'httpmime',version:'4.3.6') 

Create your controller

Create the grails controller you wish to handle the SMS sending flow


Inject smsService into your controller

Inject smsService into your class
def smsService
smsService is a Grails service provide by the twilio plugin for easy sending SMSs. 
It provides a method called send() that can take mapped parameters. Please note that 'send()' is overloaded 'see http://en.wikipedia.org/wiki/Function_overloading' and can take various variations of parameters.

One simple form is:  send(Map map) 
Where ......
map contains parameters;
map['phone'] :  The phone number of recipient eg +1234444444
map['from'] : Your twilio assigned number eg. +09899898989
map['body']:  "The body of your message" map.mediaUrl: "Url for any attachment" (optional )

Example Usage


An example usage can be seen below.
Class YourController{

    def smsService
    ...
    def yourMethod(){
        def map = [to:"070987878787",from:"09808000000",body:"SMS BODY"]
        smsService.send(map)

    }

}

You are done.

Comments

Anonymous said…
Hello, you used to write great, but the last several posts have been kinda boring...
I miss your super writings. Past several posts are just a little
bit out of track! come on!
Anonymous said…
Thanks for your personaal marvelous posting! I genuinely enjoye reading it, you happen to
bbe a great author.I will always bookmark your blog and will eventually come back down the
road. I want to encourage one to continue your great posts, have a
nice holiday weekend!

Popular posts from this blog

How to accept PayPal payments on Grails

How to upgrade Grails 2 applications and plugins to Grails 3